Android给view或者布局添加水波纹点击效果

版权声明:请尊重原创,侵权必究 如果想转载或者讨论问题,可以添加微信号 WJ1118825 进行授权获取或者共同交流学习 ,转载请注明原文链接并设置超链接跳转功能,本文链接: https://blog.csdn.net/wjj1996825/article/details/83064786


方法一 系统自带水波纹效果,在view的xml布局中添加如下代码即可 

android:background="?android:attr/selectableItemBackground"   <!-- 系统自带水波纹效果 -->

方法二(用颜色值和shape绘制):res目录下的drawable文件夹下创建 linerlayout_water_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 点击后水波纹的颜色效果 -->
    <item android:drawable="@color/text_Grey" android:state_pressed="true"/>
    <item android:drawable="@color/text_Grey" android:state_focused="true"/>
    <!-- 默认显示的颜色效果 -->
    <item android:drawable="@color/write"/>
</selector>

在res目录下创建drawable-v21 (如果有就不用创建),并创建 linerlayout_water_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/text_Grey">  <!-- 点击后水波纹的颜色效果 -->
    <item>

   <!-- 默认显示的颜色效果 -->
        <shape xmlns:android="http://schemas.android.com/apk/res/android">
            <corners android:radius="1dp" />
            <!--<solid android:color="@color/white" />-->
            <solid android:color="@color/white" />
        </shape>
    </item>
</ripple>

颜色值:

    <color name="colorWhite">#ffffff</color>
    <color name="text_Grey">#c1c1c2</color>

方法三(用颜色值和图片绘制,这个我也是在ui非常懒,不愿意给我切图的情况下,被逼无奈才发现的,原来水波纹还可以用图片绘制,记录在这里作为经验以后温故参考):

res目录下的drawable文件夹下创建 btn_down_water_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 点击后水波纹的颜色效果 -->
    <item android:drawable="@color/btn_save_water" android:state_pressed="true"/>
    <item android:drawable="@color/btn_save_water" android:state_focused="true"/>

   <!-- 默认显示的图片样式效果 -->
    <item android:drawable="@drawable/icon_download"/>

</selector>

在res目录下创建drawable-v21 (如果有就不用创建),并创建 btn_down_water_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/btn_save_water"> <!-- 点击后水波纹的颜色效果 -->

    <item>
        <!-- 默认显示的图片样式效果 -->
        <bitmap android:src="@drawable/icon_download"/>
    </item>

</ripple>

最后在你想要添加的view或者布局的xml代码里面用background属性引用即可,记得给这个veiw或者布局添加android:clickable="true" 和android:focusable="true"的属性:

<ImageView
        android:id="@+id/iv_download"
        android:layout_width="@dimen/dp_50"
        android:layout_height="@dimen/dp_50"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="@dimen/dp_78"
        android:layout_marginRight="@dimen/dp_24"
        android:clickable="true"
        android:focusable="true"
        android:background="@drawable/btn_down_water_selector"/>

然后运行基本就可以了,如果遇到水波纹不显示的问题,可以参考这篇博客底部的异常解决方案来对照解决:https://blog.csdn.net/wjj1996825/article/details/80778711

猜你喜欢

转载自blog.csdn.net/wjj1996825/article/details/83064786
今日推荐