Android动画<第五篇>:触摸反馈动画

触摸反馈在用户和UI元素交互的点提供瞬时视觉确认。例如,当按钮被触摸时显示一个水波纹效果。 这是 Android 5.0 默认的触摸反馈动画。

下图就是一个按钮默认的触摸反馈动画--水波纹动画

19.gif
(1)系统自带的两个 Ripple 波纹效果
//有边界
?android:attr/selectableItemBackground
//无边界 (要求API21以上)
?android:attr/selectableItemBackgroundBorderless 

使用时只需要把上面这两个值作为 View 的 android:background="" 或 android:foreground="" 即可(如果已经有背景, 可以设置到前景属性中)。同时如果想要效果显示出来要保证 View 是可点击的(比如控件本身可点击、或者给控件设置点击事件、 或给控件设置 android:clickable="true")。

动画的颜色是系统默认的,您可以手动去设置这个颜色值,只需要在AppTheme添加如下属性即可:


效果如下:

20.gif
(2)自定义 Ripple 波纹效果

[无边界]

在drawable中添加ripple_ani.xml文件




在按钮中设置背景:

    

ripple只能运用于Android5.0之后的版本,所以还请在drawable-v21中做适配

图片.png

效果如下:

21.gif

上图是没有边界的效果,无边界的ripple会覆盖按钮原本的背景颜色,所以上图是看不到按钮的背景色的,那么为ripple添加边界的效果是怎样的呢?

[有边界]

在布局中添加边界




    
    


效果如下:

22.gif
(3)结合selector



    
    
        
            
            
            
            
        
    


效果如下:

23.gif
(4)结合shape



    
    
        
            
            
        
    


效果如下:

24.gif
(5)注意点

ripple是在Android5.0之后才有的,我们需要做一下兼容

就拿第四点来举例。

在drawable-v21目录下新建文件ripple_ani.xml,代码如下:




    
    
        
            
            
        
    


在drawable目录下新建文件ripple_ani.xml,代码如下:



    
    

参考

https://github.com/OCNYang/Android-Animation-Set/tree/master/ripple-animation

[本章完...]

你可能感兴趣的:(Android动画<第五篇>:触摸反馈动画)