天天看点

Android利用RotateAnimation实现旋转变化动画

http://www.alnton.com/?p=343

RotateAnimation类是Android系统中的旋转变化动画类,用于控制View对象的旋转动作,该类继承于Animation类。RotateAnimation类中的很多方法都与Animation类一致,该类中最常用的方法便是RotateAnimation构造方法。

【基本语法】public RotateAnimation (float fromDegrees, float toDegrees, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

参数说明

fromDegrees:旋转的开始角度。

toDegrees:旋转的结束角度。

pivotXType:X轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotXValue:X坐标的伸缩值。

pivotYType:Y轴的伸缩模式,可以取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。

pivotYValue:Y坐标的伸缩值。

【实例演示】下面通过代码来演示如何设置一个简单的旋转变化动画效果。

  1. public class firstActivity extends Activity {  
  2. @Override  
  3. public void onCreate(Bundle savedInstanceState) {           //重载onCreate方法  
  4.     super.onCreate(savedInstanceState);  
  5.     setContentView(R.layout.main);  
  6.     final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象  
  7.     Button btn1=(Button)findViewById(R.id.button1);         //按钮对象  
  8.     Button btn2=(Button)findViewById(R.id.button2);  
  9.     final Animation rotateAnimation = new       
  10.      RotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);  
  11.                                                         //设置旋转变化动画对象  
  12.     btn1.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  13.         @Override  
  14.         public void onClick(View v) {  
  15.             // TODO Auto-generated method stub  
  16.             rotateAnimation.setDuration(3000);              //持续时间  
  17.             image.setAnimation(rotateAnimation);            //设置动画  
  18.             rotateAnimation.startNow();                 //启动动画  
  19.         }  
  20.     });  
  21.     btn2.setOnClickListener(new View.OnClickListener() {        //设置监听器  
  22.         @Override  
  23.         public void onClick(View v) {  
  24.             // TODO Auto-generated method stub  
  25.             rotateAnimation.cancel();                       //取消动画执行  
  26.         }  
  27.     });  
  28. }  
  29. }  

在这段代码中,首先通过RotateAnimation构造方法创建了一个旋转变化的动画对象。然后,在第一个按钮监听器中设置了动画的持续时间,之后启动该动画。在第二个按钮监听器中取消该动画。读者运行这段代码,将看到图片沿如图9.8所示的方向进行旋转。

Android利用RotateAnimation实现旋转变化动画
图9.8  旋转变化动画