2018-04-17 Android 有背景颜色下使用水波纹效果

android:background="?android:selectableItemBackground"

这个属性可以设置为水波纹效果,如果此时还需要设置背景色,以前都是再嵌套一层布局 设置 android:background="@color/color_white ,显然不是最优解。
那如何在有背景颜色的情况下设置水波纹效果,见代码

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item android:drawable="?attr/selectableItemBackground" />
</layer-list>

第一个item自定义背景,想要什么背景,自己写

第二个item设置为水波纹效果

然后使用layer-list将两个item合并,这种方式只能在5.0以上用,或者drawable-v21里用这个,再写一个同名的xml,像下面一种方式

另一种方式

drawable-v21中white_ripple.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/base_ripple">
    <!--去掉此item内容就是无界效果-->
    <item>
        <shape>
            <!-- 中间的背景色-->
            <solid android:color="@color/color_white" />
        </shape>
    </item>
</ripple>

drawable中white_ripple.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:drawable="@color/base_ripple" ></item>
    <item android:state_selected="true" android:drawable = "@color/base_ripple"/>
    <item android:state_pressed="true"  android:drawable="@color/base_ripple"></item>
    <item android:drawable="@color/color_white" ></item>
</selector>

另:
1.设置前景的水波纹点击效果

android:foreground="?android:selectableItemBackground"

2.水波纹改色
在主题中进行配置代码

<item name="colorControlHighlight">@color/accent_material_light</item>

3.需要给控件设置可点击

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,219评论 25 708
  • ?attr/selectableItemBackground 这个属性相信大部分人都使用过了,把这个设置为背景后就...
    javalong阅读 1,251评论 2 12
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,512评论 2 45
  • 这里的冬天总是多雨的,淅淅的雨伴着冷冷的风总是那么的透人心凉。晚上站在商店门口的时候望着天空突然恍惚了一下,天空阴...
    lucia茜娅阅读 161评论 0 0
  • 1. 前阵子《我的少女时代》这小片儿,先是疯狂刷了我的脸书首页,然后又大肆侵占了我的朋友圈。关于少女心的讨论,顺理...
    yuti阅读 5,332评论 40 152