点击每个按钮都会有对应的动画显示
activity代码:
[java]view plaincopy - 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;
- }
- }
- }
- }
layout文件:
[html]view plaincopy - <?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>
资源anim文件alpha.xml
[html]view plain
|