android水波纹点击效果的实现

作者: 上官若枫 | 来源:发表于2017-11-14 16:32 被阅读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

    相关文章

      网友评论

        本文标题:android水波纹点击效果的实现

        本文链接:https://www.haomeiwen.com/subject/avdfvxtx.html