`

android 自定义Animation

 
阅读更多
package com.android.tcl.kang;

import android.graphics.Camera;
import android.graphics.Matrix;
import android.tcl.debug.MyLog;
import android.util.Log;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.Transformation;

public class AnimationAlbum extends Animation {
	private int mCenterX;
	private int mCenterY;
	private Camera camera = new Camera();
	//初始化动画的函数
	@Override
	public void initialize(int width, int height, int parentWidth,int parentHeight) {
		super.initialize(width, height, parentWidth, parentHeight);
		mCenterX = width / 2;
		mCenterY = height / 2;
		//设置动画持续时间
		setDuration(200);
		//设置放大后的动画状态永远保持
		setFillAfter(true);
		//设置加速曲线为线性加速
		setInterpolator(new LinearInterpolator());
	}
	//这个函数在每个动画动作时调用
	@Override
	protected void applyTransformation(float interpolatdTime, Transformation t) {
		final Matrix matrix = t.getMatrix();
		//保存原有参数
		camera.save();
		//放大
		camera.translate(-0.0f, 0.0f, -20.0f);
		//得到放大后的矩阵
		camera.getMatrix(matrix);
		//恢复参数
		camera.restore();
		matrix.preTranslate(-mCenterX, -mCenterY);
		matrix.postTranslate(mCenterX, mCenterY);

	}
}
分享到:
评论
1 楼 blackhorsecc 2011-11-10  
                

相关推荐

Global site tag (gtag.js) - Google Analytics