图像按钮难度上的波纹动画

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>