android点击的ripple效果

android的ripple点击效果很好看,怎么自定义点击呢?
我们来看看

示例:
在drawable文件夹中添加xml文件,比如娶个名字:ripple1.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/green">
    <item  android:drawable="@color/red"/>
</ripple>

这里的< item>标签是没有点击的时候显示的内容,可以添加多个< item>标签

然后在可点击的控件中设置background属性

如下:

<Button
    android:id="@+id/dial_btn"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="@drawable/ripple1"/>

当没有点击的时候显示的是这样的


没有点击的时候

当我们点击的时候是这样的


点击的时候

在点击的位置会有我们设置的android:color="@color/green"逐渐扩散(#ff00ff00),

看周围这清爽的屎绿色,会在我们刚刚点击的时候就出现,布满整个View,这个屎绿色其实是系统自动生成的,它其实就是android:color="@color/green"这个颜色设置了透明度的颜色,透明度具体多少我不清楚啦


最后涟漪扩散到全部是这样的:


完全扩散的模样

有个地方需要注意:

如果设置了< item>标签,则涟漪就只会扩散在< item>显示的地方

如下图,下图< item>是个圆形,则涟漪不会超过圆形的范围

涟漪范围

但有个特例,就是没有设置< item>标签的时候:

涟漪会以view的中心点为原点,扩散在直径为view对角线的圆上.

也就是说有部分会超出view限定的范围,具体看图:

没有设置item标签

最后关于涟漪扩散的速度:

无论点击在view的哪个位置,涟漪总是在相同的时间抵达到view的四个角.

所以会出现涟漪移动速度不均匀的情况

注意:只有api>=21才能使用ripple效果

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

推荐阅读更多精彩内容