Android中TweenAnimation四种动画切换效果

Android中TweenAnimation四种动画切换效果

点击每个按钮都会有对应的动画显示

Android中TweenAnimation四种动画切换效果

activity代码:

package com.tmacsky;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.AnimationUtils;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.ImageView;
public class AnimationDemoActivity extends Activity {
 private ImageView imageView;
 /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //定义四个动画的button属性
        imageView = (ImageView)findViewById(R.id.imageView);
        Button alpha = (Button)findViewById(R.id.Alpha);
        alpha.setOnClickListener(new AnimationClickListener(AnimationType.Alpha));
        Button rotate = (Button)findViewById(R.id.Rotate);
        rotate.setOnClickListener(new AnimationClickListener(AnimationType.Rotate));
        Button scale = (Button)findViewById(R.id.Scale);
        scale.setOnClickListener(new AnimationClickListener(AnimationType.Scale));
        Button translate = (Button)findViewById(R.id.Translate);
        translate.setOnClickListener(new AnimationClickListener(AnimationType.Translate));
        Button complex = (Button)findViewById(R.id.Complex);
        complex.setOnClickListener(new AnimationClickListener(AnimationType.Complex));
    }
    //定义animationType属性
    enum AnimationType{
     Alpha,
     Rotate,
     Scale,
     Translate,
     Complex
    }
    //定义一个函数
    class AnimationClickListener implements OnClickListener{
     private AnimationType animationType;
     public AnimationClickListener(AnimationType animType){
      animationType = animType;
     }
  public void onClick(View v) {
   // TODO Auto-generated method stub
   switch (animationType) {
   case Alpha:
    //定义渐变动画,重复5次,持续1分钟
    /*AlphaAnimation _animation = new AlphaAnimation(1f, 0.1f);
    _animation.setDuration(3000);
    _animation.setRepeatCount(5);
    //设置循环
    _animation.setRepeatMode(Animation.REVERSE);
    _animation.setAnimationListener(new AnimationListener() {
     //设置animation监听,依次是启动,重复,然后结束
     public void onAnimationStart(Animation animation) {
      // TODO Auto-generated method stub
      Log.i("log", "animation Start");
     }
     public void onAnimationRepeat(Animation animation) {
      // TODO Auto-generated method stub
      Log.i("log", "animation Repeat"); 
     }
     public void onAnimationEnd(Animation animation) {
      // TODO Auto-generated method stub
      Log.i("log", "animation End");
     }
    });
    //启动动画
    imageView.startAnimation(_animation);*/
    AlphaAnimation alphaAnimation = (AlphaAnimation)AnimationUtils.loadAnimation(AnimationDemoActivity.this, R.anim.alpha);
    imageView.startAnimation(alphaAnimation);
    break;
   case Rotate:
    //定义旋转动画,旋转一周持续1分钟,重复三次,在物体的中心位置
    RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    rotateAnimation.setDuration(3000);
    rotateAnimation.setRepeatCount(3);
    //启动动画
    imageView.startAnimation(rotateAnimation);
    break;
   case Scale:
    //定义缩放动画,从中心坐标开始,缩放1.5倍大小,持续1分钟,重复三次
    ScaleAnimation scaleAnimation = new ScaleAnimation(1, 1.5f, 1, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    scaleAnimation.setDuration(3000);
    scaleAnimation.setRepeatCount(3);
    //启动动画
    imageView.startAnimation(scaleAnimation);
    break;
   case Translate:
    //定义移动动画,都从自身坐标开始,移动2个位置,持续1分钟,重复三次
    TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2);
    translateAnimation.setDuration(3000);
    translateAnimation.setRepeatCount(3);
    //启动动画
    imageView.startAnimation(translateAnimation);
    break;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4677006476591ca398fa53bb5d10e203.html