android 自定义Animation

本文介绍了一个名为AnimationAlbum的自定义动画类,它通过调整图像大小并使用线性加速曲线来实现平滑的动画效果。通过设置动画持续时间、填充状态和加速曲线,开发者可以轻松地为应用程序添加生动的视觉体验。了解如何利用此类进行快速原型设计和增强用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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);

}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值