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; case Complex: //设置复杂的操作步骤,点击按钮complex后,会运行四种动画效果叠加 AnimationSet sets = new AnimationSet(false); //定义渐变动画 AlphaAnimation _animation1 = new AlphaAnimation(1f, 0.1f); _animation1.setDuration(3000); //定义旋转动画,在物体的中心位置 RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation1.setDuration(3000); //定义缩放动画,从中心坐标开始,缩放1.5倍大小 ScaleAnimation scaleAnimation1 = new ScaleAnimation(1, 1.5f, 1, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); scaleAnimation1.setDuration(3000); //定义移动动画,都从自身坐标开始,移动2个位置 TranslateAnimation translateAnimation1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 2); translateAnimation1.setDuration(3000); //启动动画 sets.addAnimation(_animation1); sets.addAnimation(rotateAnimation1); sets.addAnimation(scaleAnimation1); sets.addAnimation(translateAnimation1); imageView.startAnimation(sets); break; default: break; } } } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/qa" /> <Button android:id="@+id/Alpha" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Alpha" /> <Button android:id="@+id/Rotate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Rotate" /> <Button android:id="@+id/Scale" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Scale" /> <Button android:id="@+id/Translate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Translate" /> <Button android:id="@+id/Complex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Complex" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android=补充:移动开发 , Android ,