当前位置:   article > 正文

android中通过属性动画来旋转控件,android 属性动画

android 属性动画 旋转 点击位置

一直再追郭霖的博客和imooc上的一些新的视频,最近有讲到属性动画。

以下内容为博客学习以及imooc上视频资料的学习笔记:

在3.0之前比较常见的动画为tween动画和frame动画:

tween动画:就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变);

frame动画:即顺序的播放事先做好的图像,与gif图片原理类似,也类似电影效果。

在3.0以后除了支持以上两种动画以外,还增加了一个新的动画:

property animation----属性动画。

传统的animation动画,旧的animation只适合显示效果,不适合交互动画

TranslateAnimation 位移动画

f4269c2aabc27a1e40cb18c61dd6c145.png

虽然Imageview可以移动,但是移动后的imageview无法单击,而在旧的位置可以单击,这就是旧的animation的效果。

8164c3fac1dc3a93d7c3fd6e9b20eae1.png

ofFloat第一个参数为要操控的控件,第二个为要操作的属性,第三个以及第四个为操作的范围。

setDuration为操作的时间长度。

属性动画在移动后的控件位置点击可以toast.

efa6c31d109c9b12e5fc50b9f70cd8e9.png

实现控件旋转360度。

多个属性动画的使用:

9b10105579bba680115a823cb20e2cbc.png

1d1a1ceecd38e544b5f136f937ac5017.png

50f5ca2c2d02fde96c6b0653d31cabf0.png

按照顺序进行动画播放:

875a668b4276061c25d04e127297935a.png

a65610422f7572e38150a8b5a5ce1a9f.png

动画监听事件:

97e943ef96e928d11075efe04b057629.png

另外一种添加事件的监听:

dd6d1481c1b6806a5eb00db3a53b2690.png

有层次的动画显示风格:

setStartDelay()设置延迟时间的属性

3b6bd2395e46cd706b0c9d783460e8ed.png

插值器:

setInterpolator(new BounceInterpolator());

669548b4b52e2d7d63d70ab1ebc41e62.png

ValueAnimator

五秒内button上的内容从1到100:

2f7eab0043353300186977506ab30ed1.png

通过对数值的处理进行动画效果的处理

2897f8f4a512b5667246d09bcdd04015.png

常用属性:

translationX ,translationY----偏移距离

rotation , rotationX ,rotationY,----水平或者竖直方向旋转动画

scaleX,scaleY----X方向,Y方向的缩放动画

X,Y,移动到具体那个坐标

alpha 透明度

常用的方法和类:

ValueAnimator----数值发生器

ObjectAnimator----ValueAnimator子类

AnimatorUpdateListener---动画监听事件

AnimatorListenerAdapter

PropertyValuesHolder

AnimatorSet----动画集合,即可以同时对一个对象应用几个动画,这些动画可以同时播放也可以对不同动画设置不同开始偏移

TypeEvaluators----根据属性的开始、结束值与TimeInterpolation计算出的因子计算出当前时间的属性值

Interplators

nterplators图解:

AccelerateInterpolator          加速,开始时慢中间加速

DecelerateInterpolator         减速,开始时快然后减速

AccelerateDecelerateInterolator    先加速后减速,开始结束时慢,中间加速

AnticipateInterpolator        反向 ,先向相反方向改变一段再加速播放

AnticipateOvershootInterpolator    反向加回弹,先向相反方向改变,再加速播放,会超出目的值然后缓慢移动至目的值

BounceInterpolator         跳跃,快到目的值时值会跳跃,如目的值100,后面的值可能依次为85,77,70,80,90,100

CycleIinterpolator         循环,动画循环一定次数,值的改变为一正弦函数:Math.sin(2 * mCycles * Math.PI * input)

LinearInterpolator         线性,线性均匀改变

OvershottInterpolator        回弹,最后超出目的值然后缓慢改变到目的值

TimeInterpolator           一个接口,允许你自定义interpolator,以上几个都是实现了这个接口

20e1419030f20927f01d5cf73f4e053a.png

相关进阶资料:

AnimatorSeth和AnimatorListener:http://blog.csdn.net/new_abc/article/details/40143091

原文:http://www.cnblogs.com/androidsuperman/p/4474604.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/423544
推荐阅读
相关标签
  

闽ICP备14008679号