Aandrod动画、属性动画、帧动画、补间动画

android动画分为Tween(补间动画)、 Frame(帧动画)、 property(属性动画)。其中属性动画是android3.0之后的新特性。

作用场景

帧动画:由于是播放帧,每一帧都要有图片,这会导致我们的项目包会变的很庞大,

但当我们对于一个动画很难找到其的规律时候,或者其他动画很难替代它的时候

我们会采用它。比如:美团、顺丰loading动画等。(我们App首页面加载)。

补间动画:作用于简单的平移、透明度、旋转、缩放,只做效果,动画执行完毕之后

属性没有改变。

属性动画:属性动画可以实现补间动画的上述效果之外,还可以改变其他属性。但是

和补间动画还是有着本质区别。以下会详细介绍。


一:Tween 动画又称为View Animation:
1、作用于View 对象。只改变View的位置不改变View的本身属性。包括:Translate(平移)、Scale(缩放)、Rotate(旋转)、Alpha(透明)。
2、对于一个View可以同时设置多种动画,多种动画可以一起进行也可以顺序进行。动画建议写在xml文件中,因为复用方便。
    写在“res/anim/动画文件”中的动画,XML文件的根元素可以为<alpha>,<scale>,<translate>,<rotate>,interpolator元素或<set>(表示以上几个动画的集合,set可以嵌套)。
    默认情况下就是同时进行,可以通过设置startOffset属性设置各个动画的顺序播放效果。
3、可以通过设置interpolator属性改变动画的渐变方式,如AccelerateInterpolator逐渐加快。默认为AccelerateDecelerateInterpolator。
ForExample:
   ImageView imageView = (ImageView)findViewById(R.id.imageView);
   Animation titleAnimation=AnimationUtils.loadAnimation(this, R.anim.title_animation);
   imageView .startAnimationtitleAnimation
二、Frame动画又称为Drawable Animation:
   帧动画就是按照帧去播放的动画,通过一系列的Drawable依次播放动画。这个没什么好说的直接举例子:
ForExample:XML例子:animation_1.xml.
   <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item android:drawable="@drawable/tu1" android:duration="300" />
    <item android:drawable="@drawable/tu2" android:duration="300" />
    <item android:drawable="@drawable/tu3" android:duration="300" />
     ......
   </animation-list>
   JAVA CODE
     ImageView imageView = (ImageView) findViewById(R.id.imageView);
     imageView.setBackgroundResource(R.drawable.animation_1);
     这样就可以实现动画的播放,如相对动画控制可以通过 anim = (AnimationDrawable) imageView.getBackground();获取对象就行控制。
注意事项:就是在start()之前调用stop()。如果启动Activity就调用的话,应该写的onWindowFoucsChanged()方法中start()而不是oncreate()。




Android 属性动画(Property Animation):
  出现的原因:a.属性动画可以使得View的属性改变,补间动画做不到(比如放大之后View的点击位置)。
              b.补间动画作用对象只能是View,做多种操作(比如3D,颜色值的改变)。
              c.补间动画只能做4种类操作(或者集合操作),属性动画可以作用View之外的其他对象(point)。
  属性动画相关属性
   Duration动画的持续时间,默认300ms。
   Time interpolation:时间差值器,定义动画的变化率。
   Repeat count and behavior:重复次数、以及重复模式;可以定义重复多少次;重复时从头开始,还是反向。
   Animator sets: 动画集合,你可以定义一组动画,一起执行或者顺序执行。 
   Frame refresh delay:帧刷新延迟,对于你的动画,多久刷新一次帧;默认为10ms,但最终依赖系统的当前状态;基本不用管。
 属性动画相关类:
   ObjectAnimator  动画的执行类,继承ValueAnimator 。
   ValueAnimator 动画的执行类,继承Animator。
   AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等。
   AnimatorInflater 用户加载属性动画的xml文件
   TypeEvaluator  类型估值,主要用于设置动画操作属性的值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值