android水波纹点击效果的实现
2017-11-14 本文已影响358人
上官若枫
效果图:
gif5新文件.gif前言:
最近使用BRVAH简单了解了一下水波纹效果的实现,谷歌在android5.0以后加入了水波纹的属性,使用selector和ripple组合即可实现,在android5.0以前采用 inset 代替。这次我们先来介绍一下5.0以后效果的实现
代码实现:
drawable-v21/touch_bg
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/gray_color">
<item android:id="@android:id/mask"
android:drawable="@android:color/white" />
//mask会在用户点击的时候,item的颜色会以mask的颜色为底色。不点击的时候颜色不变。说白了就是设置点击的背景颜色。同时规定了点击波纹的效果区域为item局内区域
<item>
<shape android:shape="rectangle" >
<corners android:radius="@dimen/dp_4"/>
<solid android:color="@color/item_bg"/>
<stroke android:color="@color/item_bg" android:width="1px"/>
</shape>
</item>
//设置点击形状,圆角属性radius和边缘颜色stroke,填充颜色solid
</ripple>
drawable/touch_bg
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/gray_color" android:state_pressed="true"/>
<item android:drawable="@color/gray_color" android:state_focused="true"/>
<item android:drawable="@color/item_bg"/>
//和上面v21包配合使用,主要规定了在什么时候使用什么样的属性,按下时候的颜色,光标聚集时候的颜色
</selector>
布局文件引用(控件不再详细写,主要是看background属性):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:padding="5dp"
android:orientation="horizontal"
android:background="@drawable/touch_bg">
文章引用
http://www.jianshu.com/p/7d2a8a5836e0
https://keeganlee.me/post/android/20150905
http://www.jianshu.com/p/b343fcff51b0
感兴趣的同学可以关注一下我的微信公众号,或者微信搜索 开发 Android的小学生
qrcode_for_gh_c686d73be7e1_430.jpg