Android自定义Preference点击波纹
在安卓设计开发中,设置页面是比较常见的设计场景,Android Jetpack 为我们提供了Preference来便于我们快速构建设置页面,本文主要来讲解如何通过替换资源文件来实现自定义Preference点击波纹。
查找源码
我们以 EditTextPreference 为例,它的主题是在 PreferenceThemeOverlay 里面进行设置的,我们查看 PreferenceThemeOverlay 所在的文件,路径如下:
在该文件内搜索 editTextPreferenceStyle ,可以看到:
查看 @style/Preference.DialogPreference.EditTextPreference.Material ,可以看到 android:layout 属性对应的布局:
找到 preference_material ,将其复制到你的工程文件的res/layout目录下
查看 preference_material.xml 找到根布局的 android:background 属性,这就是一会我们要设置的。
水波纹背景的创建
- 首先我们需要创建
drawable-v21 文件夹,注意一定是 drawable-v21 ,否则水波纹可能不起效。 - 在
drawable-v21 创建根节点为 ripple 的文件。<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#3c6a1c">
<item
android:left="8dp"
android:right="8dp">
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="6dp" />
</shape>
</item>
</ripple>
- 设置
preference_material.xml 根布局的 android:background 属性。android:background="@drawable/preference_background"
最终效果
参考文章
Android 修改Preferences样式 ripple实现点击时的水波纹效果
|