Animation(二)

  本篇介绍如何用配置文件进行控件的动画设置。步骤如下:
  1. 在res目录下建立anim目录
  2. 在anim目录下创建动画的xml文件
  3. 通过AnimationUtils这个类加载动画的xml文件
  4. 给你需要的控件绑定Animation
  话不多说,代码如下:
 
package com.kevin.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class AnimationDemo extends Activity {
	private ImageView img;
	private int flag = 0;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        img = (ImageView)findViewById(R.id.imageView1);
        img.setOnClickListener(new ImgOnClickListenr());
    }
    
    class ImgOnClickListenr implements OnClickListener{

		@Override
		public void onClick(View v) {
			switch (flag) {
			case 0:
				// 加载动画的配置文件
				Animation alphaAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.alpha);
				// 调用animation
				img.startAnimation(alphaAnimation);
				flag++;
				break;
			case 1:
				Animation rotateAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.rotate);
				img.startAnimation(rotateAnimation);
				flag++;
				break;
			case 2:
				Animation scaleAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.back_scale);
				img.startAnimation(scaleAnimation);
				flag++;
				break;
			case 3:
				Animation translateAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.translate);
				img.startAnimation(translateAnimation);
				flag = 0;
			default:
				break;
			}
		}
    	
    }
}
  

这里举个配置文件说明一下,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<scale android:fromXScale="0.0"
		   android:toXScale="1.0"
		   android:fromYScale="1.0"
		   android:toYScale="1.0"
		   android:pivotX="50%"
		   android:pivotY="50%"
		   android:duration="5000"/>	   
</set>

  注意这边的piovtX属性后面跟的值,因为scale缩放时,轴心的位置相对于控件的位置有三种:
  1. 当你写50时,它是采用的absolute去取轴心的位置
  2. 当你写50%时,它是采用的RELATIVE_TO_SELF去取轴心的位置
  3. 当你写50%p时,它是采用的RELATIVE_TO_PARENT去取轴心的位置
好了就写到这里吧。

你可能感兴趣的:(animation)