1.有界涟漪
在XML布局文件控件中加入
android:background="?android:attr/selectableItemBackground"
2.无界涟漪
android:background="?android:attr/selectableItemBackgroundBorderless"
3.自定义图形涟漪
android:background="@drawable/mystyle"
在drawable文件夹中新建一个mystyle.xml我已经写了一些状态,需要哪个,打开使用即可。
通过android:color="@color/colorAccent" 来设置长按时显示的颜色,
<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/colorAccent"> <!-- 使用图片作为背景--> <!--<item--> <!--android:id="@android:id/mask"--> <!--android:drawable="@drawable/ic_launcher" />--> <!-- 使用自定义图形作为背景 通过solid android:color设置默认背景色 初识就有颜色,不添加solid android:color没有涟漪效果--> <!--<item>--> <!--<shape android:shape="rectangle">--> <!--<corners android:radius="10dp"/>--> <!--<solid android:color="@color/colorPrimary"/>--> <!--</shape>--> <!--</item>--> <!-- 使用自定义图形作为背景 通过引用自定义的shape来实现 ,在自定义的shape中不添加solid android:color没有涟漪效果,添加了有涟漪效果,但是定义的颜色没用--> <!--<item--> <!--android:id="@android:id/mask"--> <!--android:drawable="@drawable/my_shape"/>--> <!-- 使用自定义selector作为背景--> <!--<item>--> <!--<selector>--> <!--<item--> <!--android:state_pressed="true"--> <!--android:drawable="@drawable/bg"/>--> <!--<item--> <!--android:state_pressed="false"--> <!--android:drawable="@drawable/bg"/>--> <!--</selector>--> <!--</item>--> <!-- 有界涟漪--> <!--<item android:id="@android:id/mask">--> <!--<color android:color="@android:color/white"/>--> <!--</item>--> <!-- 无界涟漪,就是一个ripple,里面不用写item,现在的状态就是--> </ripple>自定义的my_shape,可被ripple引用
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="10dp"/> <solid android:color="@color/colorPrimary"/> </shape>