[Android动画] 补间动画-动画工具类( AnimationUtils)七

AnimationUtils类是Android系统中的动画工具类,提供了控制View对象的一些工具。该类中最常用的方法便是 loadAnimation方法,该方法用于加载XML格式的动画配置文件。在Android系统中,除了在代码中设置动画效果外,还可以在XML配置文 件中设置动画的组合动作,这种方式适用性更好。

【基本语法】public static Animation loadAnimation (Context context, int id)

参数说明

context:上下文对象。

id:动画配置文件的ID。

【实例演示】下面通过代码来演示如何加载一个XML组合动画效果。

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();                         //取消动画执行  
        }  
    });  
}  
}

在这段代码中,首先声明了动画对象。然后,在第一个按钮监听器中通过loadAnimation方法加载动画配置文件,并设置了动画的一些 特征,最后开始执行动画。在第二个按钮监听器中调用cancel方法取消动画执行。这里用到的动画配置文件如下所示,里面定义了位置移动和旋转的组合动画 效果。

<?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所示的位置。

[Android动画] 补间动画-动画工具类( AnimationUtils)七 
图9.15  加载动画配置文件
[Android动画] 补间动画-动画工具类( AnimationUtils)七 
图9.16  动画最终位置


你可能感兴趣的:([Android动画] 补间动画-动画工具类( AnimationUtils)七)