动画交互设计与技术实现

       为了吸引用户或提醒用户有的时候我们会为界面元素加入动态效果,比如在表单验证失败时为输入框添加左右抖动动画交互,当电话来话时,为电话按钮添加摇动动画效果,上下抖动某按钮吸引用户去点击等,这些交互方式通称动画交互。Android一开始就提供了两种动画方式来满足这样的交互,它们分别是逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理是将一个完整的动画拆分成一张张单独的图片,每一张图片称为一帧,然后再将它们连贯起来逐帧播放,而补间动画则是对View进行四种动画操作,分别是淡入淡出、缩放、平移、旋转。由于补间动画只提供了这四种动画或组合,并扩展也比较困难,所以要实现其它动画交互效果就显的很局限,幸好Android3.0给我们提供了一种全新的动画模式,属性动画(propertyanimation),它的功能非常强大,弥补了补间动画的一些缺陷,同时也可以扩展,可以满足各种各样的动画交互效果。

下面使用属性动画(property animation)动画实现的动画效果:

 

 

 

属性动画工作原理:在指定的时间里按指定方式改变对象(View 对象或非View 对象)的属性,从而让对象生产动画交互。

属性动画核心类:

  (1)  ValueAnimator类:

       ValueAnimator是属性动画模式当中最核心的一个类,它最主要的作用是在动画执行的过程中计算从属性初始值过渡到终止值期间产生的过渡值。除了前面介绍的作用外,它也可以通过setDuration()设置动画播放时长,通过setRepeatCount()和setRepeatMode()方法设置动画重复次数和重复模式,通过setInterpolator()方法设置过渡值变化的规律(比如线性变化,加速变化等,这块和普通的补间动画中的插值器是一样的,下面有补充),通过addUpdateListener添加动画开始,重复,结束等事件的监听器,

通过start()方法开始计算过渡值。

       ValueAnimator类对象的创建是通过调用静态工厂方法ofXXX(XXXstartValue,XXX endValue)生成的,其中的XXX代表的是ValueAnimator要计算的过渡的属性值的类型,有Float,Int,Object等。

      常用插值器:  LinearInterpolator(匀速)、  AccelerateInterpolator(先慢后快)、

                              AccelerateDecelerateInterpolator(先慢中快后慢)、

                              DecelerateInterpolator(先快后慢)、 CycleInterpolator(循环播放,速度为正弦曲线)、

                              AnticipateInterpolator(先回撤,再匀速向前)、OvershootInte

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值