android中动画分为3种:
下面只介绍前两种动画的使用方法,属性动画将在后续文章中介绍
一 Tween Animation
Tween Animation有四种形式:
l alpha 渐变透明度动画效果
l scale 渐变尺寸伸缩动画效果
l translate 画面位置移动动画效果
l rotate 画面旋转动画效果
这四种动画实现方式都是通过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实现动画时,本身并没有提供接口来监听动画的状态(开始,结束),需要自己处理。