Android自定义Preference点击波纹

Posted 码上夏雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android自定义Preference点击波纹相关的知识,希望对你有一定的参考价值。

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 属性,这就是一会我们要设置的。

水波纹背景的创建

  1. 首先我们需要创建 drawable-v21 文件夹,注意一定是 drawable-v21 ,否则水波纹可能不起效。
  2. 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>
    
  3. 设置 preference_material.xml 根布局的 android:background 属性。
    android:background="@drawable/preference_background"
    

最终效果

参考文章

Android 修改Preferences样式
ripple实现点击时的水波纹效果

以上是关于Android自定义Preference点击波纹的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义Preference点击波纹

带有波纹动画的Android自定义视图边缘裁剪

带有波纹和双击的 Android 锁屏通知自定义视图

Android 自定义view实现水波纹效果

Android自定义水波纹动画Layout

Android 使用Kotlin来实现水波纹的自定义View