9.7 AnimationUtils类:动画工具类
AnimationUtils类是Android系统中的动画工具类,提供了控制View对象的一些工具。该类中最常用的方法便是loadAnimation方法,该方法用于加载XML格式的动画配置文件。在Android系统中,除了在代码中设置动画效果外,还可以在XML配置文件中设置动画的组合动作,这种方式适用性更好。
【基本语法】public static Animation loadAnimation (Context context, int id)
参数说明
context:上下文对象。
id:动画配置文件的ID。
【实例演示】下面通过代码来演示如何加载一个XML组合动画效果。
在这段代码中,首先声明了动画对象。然后,在第一个按钮监听器中通过loadAnimation方法加载动画配置文件,并设置了动画的一些特征,最后开始执行动画。在第二个按钮监听器中调用cancel方法取消动画执行。这里用到的动画配置文件如下所示,里面定义了位置移动和旋转的组合动画效果。
- public class firstActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) { //重载onCreate方法
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象
- Button btn1=(Button)findViewById(R.id.button1); //按钮对象
- Button btn2=(Button)findViewById(R.id.button2);
- Animation loadAnimation; //动画对象
- btn1.setOnClickListener(new View.OnClickListener() { //设置监听器
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub //加载动画
- loadAnimation=AnimationUtils.loadAnimation(getApplicationContext(),
- R.anim.anim);
- image.setAnimation(loadAnimation); //为控件设置动画
- loadAnimation.setFillAfter(true); //停留在结束位置
- loadAnimation.setFillEnabled(true);
- loadAnimation.startNow(); //开始动画
- }
- });
- btn2.setOnClickListener(new View.OnClickListener() { //设置监听器
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- loadAnimation.cancel(); //取消动画执行
- }
- });
- }
- }
读者运行这段代码,可以在手机屏幕上看到如图9.15所示的显示效果。图片从起始位置边旋转边移动,最后停留在如图9.16所示的位置。
- <?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android">
- <translate android:toXDelta="0"
- android:toYDelta="300"
- android:duration="3000"/>
- <rotate android:fromDegrees="270"
- android:toDegrees="360"
- android:pivotX="50%"
- android:pivotY="50%"
- android:duration="3000"/>
- </set>
图9.15 加载动画配置文件 |
图9.16 动画最终位置 |