Android Tween Animation
<
div id=”content” contentScore=”3284″>Android支持动画效果。常见的有Tween Animation和Frame Animation.其中Frame Animation我们在墙面介绍过了,它比较简单。这里来介绍下Tween
Tween Animation 常见可以分成四种:
ScaleAnimation :渐变尺寸伸缩效果
AlphaAnimation :渐变透明度动画效果
TranslateAnimation :画面转换位置动画效果
RotateAnimation :画面转移动画效果
其中,我们可以在代码中直接使用,也可以把Animation做成资源XML文件,从资源中装载。
Animation Java Code的使用示例:
package com.rocky.demo;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
public class GameView extends View {
private Animation mAnimationAlpha=null;
private Animation mAnimationScale=null;
private Animation mAnimationTranslate=null;
private Animation mAnimationRotate=null;
private Context mContext=null;
Bitmap mBackGroundBitmap=null;
int index=0;
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
mContext=context;
mBackGroundBitmap=((BitmapDrawable)this.getResources().getDrawable(R.drawable.image2)).getBitmap();
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawBitmap(mBackGroundBitmap, 0,0,null);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch(keyCode)
{
case KeyEvent.KEYCODE_DPAD_DOWN:
{
//mAnimationAlpha=AnimationUtils.loadAnimation(mContext, R.anim.alpha_animation);
mAnimationAlpha=new AlphaAnimation(0.1f,1.0f);
mAnimationAlpha.setDuration(10000);
this.startAnimation(mAnimationAlpha);
}
break;
case KeyEvent.KEYCODE_DPAD_UP:
{
//mAnimationRotate=AnimationUtils.loadAnimation(mContext, R.anim.rotate_animation);
mAnimationRotate=new RotateAnimation(0.0f,+360.0f,Animation.ABSOLUTE,400,Animation.ABSOLUTE,300);
mAnimationRotate.setDuration(1000);
this.startAnimation(mAnimationRotate);
}
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
{
//mAnimationScale=AnimationUtils.loadAnimation(mContext, R.anim.scale_animation);
mAnimationScale=new ScaleAnimation(0.1f,3.0f,0.1f,3.0f,Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,0.5f);
mAnimationScale.setDuration(4000);
this.startAnimation(mAnimationScale);
}
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
{
//mAnimationTranslate=AnimationUtils.loadAnimation(mContext, R.anim.translate_animation);
mAnimationTranslate=new TranslateAnimation(0,800,0,600);
mAnimationTranslate.setDuration(4000);
¼/div>