android 自定义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标签
Ripple标签,即对应一个RippleDrawable,当它被设置为一个控件的background属性时,控件在按下时,即会显示水波效果

ripple_red.xml



    

使用:


效果:
android 自定义ripple水波纹点击效果_第1张图片

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

用颜色作为Mask的Ripple(Ripple With Color Mask),然而颜色并没有什么卵用,对 于限定边界还是有用的

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

ripple_red_with_white_mask.xml




    
    

效果:
android 自定义ripple水波纹点击效果_第2张图片

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

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

ripple_red_with_pic_mask.xml




    
    

效果:
android 自定义ripple水波纹点击效果_第3张图片

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

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

先定义shape:shape.xml



    
    

再定义ripple:ripple_red_with_shape_mask.xml




    


效果:
android 自定义ripple水波纹点击效果_第4张图片

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

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

ripple_red_with_selector.xml



    
        
            
            
            
            
        
    


效果:

android 自定义ripple水波纹点击效果_第5张图片

你可能感兴趣的:(android)