Android API 21及以上新增了ripple标签用来实现水波纹的效果。我们可以通过设置ripple背景来实现一些View点击效果。

水波纹样图

1. 水波纹效果实现

1)系统效果

  • 系统有界效果
    在API 21以上使用,才有波纹效果;API 21以下使用只有变色效果,没有波纹效果

 

android:background="?android:attr/selectableItemBackground"
  • 系统无界效果
    在API 21以上才能使用,API 21以下会报错无法编译,最小版本要设置为minSdkVersion 21

 

android:background="?android:attr/selectableItemBackgroundBorderless"

2)自定义效果
res中新建一个drawable-v21文件夹,在此文件夹下新建ripple_bg.xml用于实现波纹效果。(仅限Android 5.0以上机型)

  • 自定义有界效果

 

<?xml version="1.0" encoding="utf-8"?>                                                   
  • 自定义无界效果

 

<?xml version="1.0" encoding="utf-8"?>    
  • 自定义带图片效果

 

<?xml version="1.0" encoding="utf-8"?>                                                                                  

在布局中使用:

 

2. 水波纹效果兼容

在API 21以下无法使用ripple标签来实现波纹效果,为了兼容低版本机型不出错,我们需要做波纹效果适配。
1)系统效果(只有变色效果,没有波纹效果)

 

android:background="?android:attr/selectableItemBackground"

2)自定义效果(只有变色效果,没有波纹效果)
drawable文件下创建同名文件ripple_bg.xml用于适配Android 5.0以下机型。

 

<?xml version="1.0" encoding="utf-8"?>                    

在布局中使用:

 

 

更多相关文章

  1. Android使用Handler实时更新UI
  2. Android中的数据绑定框架DataBinding(对比AngularJS双向数据绑定
  3. Android(安卓)特殊界面效果之——透明界面
  4. 如何在Android中使用OpenCV
  5. android:layout_weight属性详解
  6. Android(安卓)使用Lottie的三个小技巧
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. Android判断应用是否存在
  2. android 打电话程序的实现
  3. Android(安卓)获取以太网Mac地址和IP地址
  4. Android(安卓)LinearLayout实现多行多列
  5. Android:网络编程
  6. [Android] Service和广播联合更新UI
  7. android studio 3.1.1 相关问题
  8. [Android(安卓)GMS 认证] GTS相关问题
  9. android 如何调用系统自带的程序安装器安
  10. Android的Button监听