Android 5.0学习之动画

前言

用户跟你的App进行交互时,Material Design中的动画给予用户动作的反馈和提供视觉的一致感。

包括之前我学习过的:

Activity transitions(Activity过渡效果)

Animate Vector Drawables(可绘矢量动画)

除我们已经学习过的动画之外,Material Design还给我们提供了什么动画?

Touch feedback(触摸反馈)
Reveal effect(揭露效果)
Curved motion(曲线运动)
View state changes (视图状态改变)
Touch feedback(触摸反馈)

当用户与用户界面进行交互时,materialdesign中的触摸反馈在触摸点上提供了一种瞬时视觉确认。按钮的默认触摸反馈动画使用新的RippleDrawable类,它使用涟漪(波纹)效应在不同状态间转换。

在大多数情况下,你应该在你的布局XML文件中使用如下的方法去指定视图的背景:

?android:attr/selectableItemBackground (有界波纹)

?android:attr/selectableItemBackgroundBorderless (无界波纹)

注意:selectableItemBackgroundBorderless是API级别21上的新属性。

效果如下:


layout:

  1. <Button android:layout_width="100dp" android:layout_height="100dp"  
  2.                android:background="?android:attr/selectableItemBackground"  
  3.                android:text="有界"  
  4.                android:textColor="@android:color/white"  
  5.                android:colorControlHighlight="@android:color/holo_red_dark"/>  
  6.        <Button android:layout_width="100dp" android:layout_height="100dp"  
  7.                android:background="?android:attr/selectableItemBackgroundBorderless"  
  8.                android:textColor="@android:color/white"  
  9.                android:text="无界"/>  

或者,你可以定义一个RippleDrawable作为波纹元素的XML资源

  1. <ripple  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:color="@color/accent_dark">  
  4.     <item>  
  5.         <shape  
  6.             android:shape="oval">  
  7.             <solid android:color="?android:colorAccent" />  
  8.         </shape>  
  9.     </item>  
  10. </ripple>  

你可以给RippleDrawable对象指定一种颜色。要更改默认的触摸反馈颜色,使用主题的android:colorControlHighlight属性

Reveal effect 揭示效果)

使用ViewAnimationUtils.createCircularReveal() 方法


  1. public Animator createAnimation(View v, Boolean isFirst) {  
  2.   
  3.       Animator animator;  
  4.   
  5.       if (isFirst) {  
  6.           animator = ViewAnimationUtils.createCircularReveal(  
  7.                   v,// 操作的视图  
  8.                   0,// 动画开始的中心点X
  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值