转自:Android L Ripple的使用

总纲

  1. 没有边界的Ripple(Ripple With No Mask)

  2. 用颜色作为Mask的Ripple(Ripple With Color Mask),然而颜色并没有什么卵用

  3. 用图片作为Mask的Ripple(Ripple With Picture Mask)

  4. 用设定形状作为Mask的Ripple(Ripple With Shape Mask)

  5. 搭配selector作为Ripple(Ripple With Selector)

1、没有边界的Ripple(Ripple With No Mask)

标签
Ripple标签,即对应一个RippleDrawable,当它被设置为一个控件的background属性时,控件在按下时,即会显示水波效果
ripple_red.xml

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"    android:color="#FF0000" >ripple>

使用

"match_parent"    android:layout_height="match_parent"    android:background="@drawable/ripple_red"    android:clickable="true"    android:gravity="center"    android:text="Ripple With No Mask" />

效果

2、 用颜色作为Mask的Ripple(Ripple With Color Mask)

然而颜色并没有什么卵用,对于限定边界还是有用的

如果在一个ripple标签中,添加一个item,其id为@android:id/mask,drawable属性为引用的颜色(color) ,则水波效果会限定在drawable对应的RippleDrawable本身矩形区域内部。

ripple_red_with_white_mask.xml

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"        android:color="#FF0000" >    <item android:id="@android:id/mask"         android:drawable="@android:color/white" />ripple>

效果:

3、用图片作为Mask的Ripple(Ripple With Picture Mask)

如果在一个ripple标签中,添加一个item,其id为@android:id/mask,drawable属性为引用的图片(png,jpg),则水波效果会限定在图片drawable中非透明部分对应的区域内部。
ripple_red_with_pic_mask

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"        android:color="#FF0000" >    <item android:id="@android:id/mask"         android:drawable="@drawable/icon_folder_r" />ripple>

效果:

4、用设定形状作为Mask的Ripple(Ripple With Shape Mask)

如果在一个ripple标签中,添加一个item,其id为@android:id/mask,drawable属性为引用的形状(shape) ,则水波效果会限定在shape对应的区域内部。

先定义shape:shape.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"     android:shape="rectangle">    <solid android:color="#ff9d77"/>    <corners         android:bottomRightRadius="100dp"/>shape>

再定义ripple:ripple_red_with_shape_mask

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"    android:color="#FF0000" >    <item         android:id="@android:id/mask"        android:drawable="@drawable/shape"/>ripple>

效果:

5、搭配selector作为Ripple(Ripple With Selector)

如果在一个ripple标签中,添加一个item,在item的内部写上标签,那么这个RippleDrawable在按下的时候,同时具有水波效果和selector指定的图层。

ripple_red_with_selector

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"    android:color="#FF0000" >    <item>        <selector>            <item                android:drawable="@drawable/icon_folder_i"                android:state_pressed="true">            item>            <item                android:drawable="@drawable/icon_folder_r"                android:state_pressed="false">            item>        selector>    item>ripple>

效果:

更多相关文章

  1. 高仿源码
  2. Android输入框实时模糊搜索效果的示例代码
  3. Android实现图片左右滑动效果
  4. Android使用Retrofit技术仿微信图片上传,可以选择多张图片拍照上
  5. Android实现卡拉OK字幕效果方法
  6. 【BottomBar】Android底部导航栏V2.0
  7. Android(安卓)6.0特性(FloatingActionButton)
  8. jquery 表格 删改操作
  9. Android学习-使用ViewFlipper实现屏幕切换的动画效果

随机推荐

  1. 覆盖Android开发各个领域的近百个源码项
  2. Android常用命令
  3. javaeye中的一些好的android博客
  4. 项目中listView常用属性设置
  5. 〖Android〗dropbear一些操作命令备忘
  6. Android中的生命周期LifeCycle
  7. Android第二十七课 NDK 渲染色彩深度
  8. Android学习笔记(九) Android文件读写操
  9. Android 多级菜单实现
  10. Android你所不知道的新鲜事