2011.10.18——— android 自定义Animation
参考:
http://www.ophonesdn.com/article/show/185
写一个简单的自定义动画的例子:
这个例子是在网上找得 但是我找不到网址了 抱歉
import android.graphics.Matrix;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.Transformation;
public class WindowAnimation extends Animation {
private int halfWidth;
private int halfHeight;
private int duration;
public WindowAnimation(int duration){
this.duration = duration;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
System.out.println("applyTransformation: "+ interpolatedTime);
super.applyTransformation(interpolatedTime, t);
Matrix matrix = t.getMatrix();
matrix.preScale(interpolatedTime, interpolatedTime,halfWidth,halfHeight); //进行缩放,此时的interpolatedTime表示缩放的比例,interpolatedTime的值时0-1,开始时是0,结束时是1
matrix.preRotate(interpolatedTime * 360,halfWidth,halfHeight); //进行旋转
// matrix.preTranslate(-halfWidth, -halfHeight); //改变动画的起始位置,把扩散点和起始点移到中间
// matrix.postTranslate(halfWidth, halfHeight);
}
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
System.out.println("initialize");
super.initialize(width, height, parentWidth, parentHeight);
this.setDuration(duration); //设置动画播放的时间
this.setFillAfter(true); //设置为true,动画结束的时候保持动画效果
this.halfHeight = height / 2; //动画对象的中点坐标
this.halfWidth = width / 2;
this.setInterpolator(new LinearInterpolator()); //线性动画(速率不变)
}
}
initialize这是一个回调函数告诉Animation目标View的大小参数,在这里可以初始化一些相关的参数,例如设置动画持续时间、设置Interpolator、设置动画的参考点等。
applyTransformation 在动画过程中 会不断的调用 每次调用参数interpolatedTime值都会变化,该参数从0渐变为1,当该参数为1时表明动画结束。
使用:
view.setAnimation(new WindowAnimation(2000));
效果如图:
- 大小: 146.4 KB
分享到:
相关推荐
这篇博客“2011.10.13(2)——— android Matrix学习03”可能深入探讨了Matrix类的一些高级用法和实践技巧。虽然描述中没有提供具体信息,但从标题可以推断,这可能是系列教程的第三部分,继续深化对Matrix的理解。...
嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟.zip嵌入式成品项目——无线接收时钟...
基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj
微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+源码).zip 微信小程序——移动端商城(截图+...
微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈组件(截图+源码).zip 微信小程序——用户反馈...
python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人.zip python项目——微信机器人....
python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...
微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序——小游戏-别踩白块(截图+源码).zip 微信小程序...
java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的仿微博系统设计与实现(源码+数据库).zip java毕业...
C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——MP3音乐播放器.zip C语言项目——...
微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以重邮为例(截图+源码).zip 微信小程序——学校管理小程序以...
python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ...
java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java毕业设计——基于ssm的房屋租赁系统设计与实现(源码+数据库).zip java...
java毕业设计——基于spring boot的在线招标网站设计与实现(源码+数据库).zip java毕业设计——基于spring boot的在线招标网站设计与实现(源码+数据库).zip java毕业设计——基于spring boot的在线招标网站设计与...
java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——商品供应管理系统的设计与实现...
java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源代码).zip java毕业设计——java基于J2ME的手机游戏开发设计与实现(论文+源...
1,安装说明.txt ——————————安装手册 2,jdk-170.tar.gz ——————————JDK1.7deb包 3,switch_java.sh -------------------------java其它版本切换 4,check_java.sh———————————版本...
java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——物资管理系统的设计与实现(论文+答辩PPT+...
java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+源代码+数据库).zip java毕业设计——文章发布系统的设计与实现(论文+答辩PPT+...