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的理解。...
基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj
数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.zip...
微信小程序——新浪读书(截图+源码).zip 微信小程序——新浪读书(截图+源码).zip 微信小程序——新浪读书(截图+源码).zip 微信小程序——新浪读书(截图+源码).zip 微信小程序——新浪读书(截图+源码).zip ...
python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...
python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ读者书库.zip python项目——RCQ...
C语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统....
本教程将详细介绍如何在Android中自定义垂直SeekBar,并实现监听其各种状态。 首先,我们需要创建一个新的View类,继承自 SeekBar。在Java代码中,我们可以这样定义: ```java public class VerticalSeekBar ...
Geomagic.Studio.2012软件,由于太大,分成八个压缩包以及一个其他文件包。 此文件为part5
本示例项目“Android 自定义圆环动画切换、流式布局的实现”旨在教你如何利用自定义组件和动画来打造这样的效果。下面将详细解释其中涉及的关键技术点。 首先,我们关注的是“自定义的圆环ImageView”。在Android中...
microsoftrootcertificateauthority2011.cer - 教程详情https://blog.csdn.net/Dream_Weave/article/details/125408661
在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...
实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip
matlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 ...
1.基于vue3与elementUI开发的社区疫情管理系统: ...✪.components——封装自定义指令,自定义组件 ElementUI: ✪.Form 表单——登录注册页面 ✪.Upload + Avatar——上传头像 ✪.Menu菜单——首页侧边栏
有偏技术进步、要素配置扭曲...发展——基于技术一致性视角_蔺鹏 (1).caj
基于FLO-2D的泥石流灾...评价——以麦多沟泥石流为例_李宝幸.caj
在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本篇文章将深入探讨如何创建一个圆形进度条,即`CircleProgressView`。这个控件能够以圆形的形式展示进度,常见于加载动画或者显示数据百分比的...
// 其他自定义设置... } @Override protected void onDraw(Canvas canvas) { // 自定义绘制逻辑 } // 其他自定义方法... } ``` 在项目中使用这个自定义组件时,只需在XML布局文件中声明并引用自定义属性:...