Android半栈工程师Android进阶之路

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
上一篇下一篇

猜你喜欢

热点阅读