android动画简介

android中动画分为3种:html

  1. Tween Animation:经过对场景里的对象不断作图像变换(平移、缩放、旋转)产生动画效果,便是一种渐变更画;
  2. Frame Animation:顺序播放事先作好的图像,是一种画面转换动画。
  3. Property Animation:属性动画,经过动态地改变对象的属性从而达到动画效果,属性动画为API 11新特性。

下面只介绍前两种动画的使用方法,属性动画将在后续文章中介绍java

一 Tween Animationandroid

 Tween Animation有四种形式:动画

  l  alpha              渐变透明度动画效果spa

  l  scale              渐变尺寸伸缩动画效果code

  l  translate         画面位置移动动画效果xml

  l  rotate              画面旋转动画效果htm

        这四种动画实现方式都是经过Animation类和AnimationUtils配合实现。对象

能够经过xml实现:动画的XML文件在工程中res/anim目录。接口

例如:rotate.xml

<?xml version="1.0" encoding="utf-8"?>

<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>

使用动画

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

//监听动画的状态(开始,结束)
anim.setAnimationListener(new EffectAnimationListener());
textWidget = (TextView)findViewById(R.id.text_widget);
textWidget.setText("画面旋转动画效果");
textWidget.startAnimation(anim);

二 Frame Animation

  Frame Animation是顺序播放事先作好的图像,跟电影相似。不一样于animation package,Android SDK提供了另一个类AnimationDrawable来定义使用Frame Animation。

利用xml文件实现:res/drawable-hdpi/frame.xml:
<?xml version="1.0" encoding="utf-8"?>

<animation-list
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="true"
  >
       <item android:drawable="@drawable/p1" android:duration="1000"></item>
       <item android:drawable="@drawable/p2" android:duration="1000"></item>
       <item android:drawable="@drawable/p3" android:duration="1000"></item>
       <item android:drawable="@drawable/p4" android:duration="1000"></item>
       <item android:drawable="@drawable/p5" android:duration="1000"></item>
       <item android:drawable="@drawable/p6" android:duration="1000"></item>
</animation-list>
使用动画

AnimationDrawable anim = (AnimationDrawable)getResources().
getDrawable(R.drawable.frame);
textWidget = (TextView)findViewById(R.id.text_widget);
textWidget.setText("背景渐变更画效果");
textWidget.setBackgroundDrawable(anim);
anim.start();

这里有点不一样的是,利用AnimationDrawable实现动画时,自己并无提供接口来监听动画的状态(开始,结束),须要本身处理。

相关文章
相关标签/搜索