如何向具有自定义背景的小部件添加波纹动画?

问题描述

如何在android中实现以下悬停(Ripple)?
我有一个线性布局,我希望当用户触摸布局时,线性布局中的所有小部件都变得更轻。

hover

解决方法

在 res/drawable 中创建一个可绘制的波纹:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/ripple"
    tools:targetApi="lollipop">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="@color/ripple" />
            <corners android:radius="@dimen/dp_6" />
        </shape>
    </item>
</ripple>

将此 drawable 设置为按钮前景:

android:foreground = "@drawable/bg_btn_ripple_animation"

您可以根据自己的喜好修改可绘制的波纹。