Tween动画
知识点
Alpha:渐变透明度动画效果
Scale:渐变尺寸伸缩动画效果
Translate:移动效果
Rotate:旋转效果
1、 AlphaAnimation(float fromAlpha,float toAlpha)
功能:构建一个渐变透明度动画
参数:fromAlpha:为动画的起始透明度,toAlpha:终止透明度(0.0表示完全透明,1.0表示完全不透明)
2、 ScaleAnimation(float fromX,float toX,flaot fromY, flaot toY, int pivotXType,float pivotXValue,int pivotYType,flaot pivotYValue)
功能:构建一个渐变尺寸伸缩动画
参数:fromX, toX分别是起始和结束时x坐标上的伸缩尺寸。
fromY, toY分别是起始和结束时y坐标上的伸缩尺寸。
pivotXType,pivotYType分别是x,y的伸缩模式。
pivotXValue, pivotYValue分别是x,y的坐标开始的位置。
3、 TranslateAnimation(float fromXDelta, flaot toXDelta, flaot fromYDelta,float toYDelta)
功能:构建一个渐变尺寸伸缩动画
参数:fromXDelta, fromYDelta:分别为起始坐标, toXDelta, toYDelta分别为终点坐标
4、 RotateAnimation(float fromDegrees,float toDegress,int pivotXType,float pivotXValue,int pivotYType,float pivotYValue)
功能:构建一个旋转画面的动画
参数:fromDegrees开始的角度, toDegress为结束的角度,.
pivotXType, pivotYType分别为x,y的伸缩模式,.
pivotXValue, pivotYValue分别为x,y的开始位置
5、 setDuration(long durationMillis)
功能:设置动画显示的时间
参数:durationMillis为动画显示时间的长短,以毫秒为单位
6、 startAnimation(Animation animation)
功能:开始播放动画
参数:animation为要播放的动画
代码示例
package com.example.examples_05_15;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
public class GameView extends View {
//定义mAnimationAlpha
private Animation mAnimationAlpha=null;
//定义mAnimationScale
private Animation mAnimationScale=null;
//定义mAnimationTranslate
private Animation mAnimationTranslate=null;
//定义mAnimationRotate
private Animation mAnimationRotate=null;
//定义mBitmapQQ
Bitmap mBitmapQQ;
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
//装载图片
mBitmapQQ=((BitmapDrawable)getResources().getDrawable(R.drawable.qq)).getBitmap();
}
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//绘制图片
canvas.drawBitmap(mBitmapQQ, 0, 0, null);
}
public boolean onKeyDown(int keyCode,KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_DPAD_UP)
{
//创建mAnimationAlpha
mAnimationAlpha=new AlphaAnimation(0.1f, 1.0f);
//设置动画时间
mAnimationAlpha.setDuration(3000);
//开始播放
this.startAnimation(mAnimationAlpha);
}
else if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN) {
//创建scale动画
mAnimationScale=new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.ZORDER_TOP,0.5f);
//设置动画时间
mAnimationScale.setDuration(500);
//动画开始
this.startAnimation(mAnimationScale);
}
else if (keyCode==KeyEvent.KEYCODE_DPAD_LEFT) {
//创建mAnimationTranslate
mAnimationTranslate =new TranslateAnimation(10, 100, 10, 100);
//设置动画时间
mAnimationTranslate.setDuration(1000);
//开启动画
this.startAnimation(mAnimationTranslate);
}
else if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {
//创建mAnimationRotate
mAnimationRotate =new RotateAnimation(0.0f, +360.0f, Animation.RELATIVE_TO_SELF,
0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
//设置时间
mAnimationRotate.setDuration(1000);
//开启动画
this.startAnimation(mAnimationRotate);
}
return true;
}
}
package com.example.examples_05_15;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
public class MainActivity extends Activity {
GameView gameView=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameView=new GameView(this);
setContentView(gameView);
}
public boolean onKeyDown(int keyCode,KeyEvent event) {
if(gameView==null)
{
return false;
}
return gameView.onKeyDown(keyCode, event);
}
}