图像按钮难度上的波纹动画
Ripple animation over image button difficulty
我试图在按下按钮时播放涟漪效应,我遵循了许多关于堆栈溢出和网络的指南,但没有取得任何成功。有人能指出我正确的方向吗?我的 XML 看起来是正确的,但是当我点击按钮时没有任何反应。
谢谢!
Ripple_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- thanks to http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html !-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/ripple_Orange"
tools:targetApi="lollipop">
<item android:id ="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color = "@color/ripple_Orange"/>
</shape>
</item>
</ripple>
正在对按钮应用波纹效果
<ImageButton
android:id="@+id/one_button"
android:background="@drawable/ripple_animation"
android:padding="0dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="85dp"
android:layout_height="85dp"
app:srcCompat="@drawable/one_button_500_500"
android:layout_below="@+id/four_button"
android:layout_alignParentStart="true" />
您将波纹设置为 background
属性。
这意味着它被绘制在图像 src 的后面。
相反,将其设置为此视图或其父视图的前景:
android:foreground="@drawable/ripple_animation"
试试这个来显示设备默认的连锁反应
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground">
<ImageButton
android:id="@+id/one_button"
android:background="@drawable/ripple_animation"
android:padding="0dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="85dp"
android:layout_height="85dp"
app:srcCompat="@drawable/one_button_500_500"
android:layout_below="@+id/four_button"
android:layout_alignParentStart="true" />
</FrameLayout>
我试图在按下按钮时播放涟漪效应,我遵循了许多关于堆栈溢出和网络的指南,但没有取得任何成功。有人能指出我正确的方向吗?我的 XML 看起来是正确的,但是当我点击按钮时没有任何反应。
谢谢!
Ripple_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- thanks to http://www.viralandroid.com/2015/09/how-to-add-ripple-effect-to-android-button.html !-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/ripple_Orange"
tools:targetApi="lollipop">
<item android:id ="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color = "@color/ripple_Orange"/>
</shape>
</item>
</ripple>
正在对按钮应用波纹效果
<ImageButton
android:id="@+id/one_button"
android:background="@drawable/ripple_animation"
android:padding="0dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="85dp"
android:layout_height="85dp"
app:srcCompat="@drawable/one_button_500_500"
android:layout_below="@+id/four_button"
android:layout_alignParentStart="true" />
您将波纹设置为 background
属性。
这意味着它被绘制在图像 src 的后面。
相反,将其设置为此视图或其父视图的前景:
android:foreground="@drawable/ripple_animation"
试试这个来显示设备默认的连锁反应
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:foreground="?android:selectableItemBackground">
<ImageButton
android:id="@+id/one_button"
android:background="@drawable/ripple_animation"
android:padding="0dp"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="85dp"
android:layout_height="85dp"
app:srcCompat="@drawable/one_button_500_500"
android:layout_below="@+id/four_button"
android:layout_alignParentStart="true" />
</FrameLayout>