Android 动画浅析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tianmi1988/article/details/50373990

1.概述

Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类:
View Animation:(也叫Tween 动画)视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画,即通过对场景里的对象不断做图像变换 ( 平移、缩放、旋转 ) 产生动画效果
Drawable Animation:这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,就像放幻灯片一样,顺序播放事先做好的图像,是一种画面转换动画
Property Animation:属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画
 2.Tween 动画
Tween Animation有四种形式:
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate  画面位置移动动画效果
rotate   画面旋转动画效果

 这四种动画实现方式都是通过Animation类和AnimationUtils配合实现。可以通过xml实现:动画的XML文件在工程中res/anim目录。
很简单就能猜到实现效果:在4s内绕中心点旋转360度

也可以通过java代码来实现

Animation anim = AnimationUtils.loadAnimation(mContext, R.anim.rotate);

//监听动画的状态(开始,结束)
anim.setAnimationListener(new EffectAnimationListener());
textWidget = (TextView)findViewById(R.id.text_widget);
textWidget.setText(" 画面转移旋转动画效果");
textWidget.startAnimation(anim);
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter = "false"
    android:zAdjustment="bottom"
    >
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="4000"
        />
</set>


Tween Animations的通用方法

  1、setDuration(long durationMills)
  设置动画持续时间(单位:毫秒)
  2、setFillAfter(Boolean fillAfter)
  如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态
  3、setFillBefore(Boolean fillBefore)
  如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态
  4、setStartOffSet(long startOffSet)
  设置动画执行之前的等待时间
  5、setRepeatCount(int repeatCount)
  设置动画重复执行的次数

 

在代码中使用Animations可以很方便的调试、运行,但是代码的可重用性差,重复代码多。同样可以在xml文件中配置Animations,这样做可维护性变高了,只不过不容易进行调试。


3.Frame动画


猜你喜欢

转载自blog.csdn.net/tianmi1988/article/details/50373990