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);
}
}
android 自定义Animation
最新推荐文章于 2021-03-13 14:54:29 发布