`

2011.10.18——— android 自定义Animation

阅读更多
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
分享到:
评论
2 楼 lipeng88213 2013-07-08  
jaisok 写道
多谢分享,很有帮助

互相学习
1 楼 jaisok 2013-07-07  
多谢分享,很有帮助

相关推荐

    2011.10.13(2)——— android Matrix学习03

    这篇博客“2011.10.13(2)——— android Matrix学习03”可能深入探讨了Matrix类的一些高级用法和实践技巧。虽然描述中没有提供具体信息,但从标题可以推断,这可能是系列教程的第三部分,继续深化对Matrix的理解。...

    基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj

    基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj

    数据库大作业-学校人事信息管理系统.zip

    数据库大作业——学校人事信息管理系统.zip数据库大作业——学校人事信息管理系统.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项目——Word助手.zip python项目...

    python项目——RCQ读者书库.zip

    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语言项目——企业员工管理系统.zip C语言项目——企业员工管理系统....

    android自定义垂直seekbar

    本教程将详细介绍如何在Android中自定义垂直SeekBar,并实现监听其各种状态。 首先,我们需要创建一个新的View类,继承自 SeekBar。在Java代码中,我们可以这样定义: ```java public class VerticalSeekBar ...

    Geomagic.Studio.2012软件——part5

    Geomagic.Studio.2012软件,由于太大,分成八个压缩包以及一个其他文件包。 此文件为part5

    Android 自定义圆环动画切换、流式布局的实现.rar

    本示例项目“Android 自定义圆环动画切换、流式布局的实现”旨在教你如何利用自定义组件和动画来打造这样的效果。下面将详细解释其中涉及的关键技术点。 首先,我们关注的是“自定义的圆环ImageView”。在Android中...

    microsoftrootcertificateauthority2011.cer

    microsoftrootcertificateauthority2011.cer - 教程详情https://blog.csdn.net/Dream_Weave/article/details/125408661

    Android 自定义View实现水平温度计

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...

    实用源码-Android屏幕锁源码.zip

    实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip 实用源码——Android屏幕锁源码.zip

    matlab课程设计——调幅广播系统的仿真设计 完整版.docx

    matlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 完整版.docxmatlab课程设计——调幅广播系统的仿真设计 ...

    Vue3疫情后台管理平台

    1.基于vue3与elementUI开发的社区疫情管理系统: ...✪.components——封装自定义指令,自定义组件 ElementUI: ✪.Form 表单——登录注册页面 ✪.Upload + Avatar——上传头像 ✪.Menu菜单——首页侧边栏

    有偏技术进步、要素配置扭曲...发展——基于技术一致性视角_蔺鹏 (1).caj

    有偏技术进步、要素配置扭曲...发展——基于技术一致性视角_蔺鹏 (1).caj

    基于FLO-2D的泥石流灾...评价——以麦多沟泥石流为例_李宝幸.caj

    基于FLO-2D的泥石流灾...评价——以麦多沟泥石流为例_李宝幸.caj

    Android自定义控件——圆形进度条

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。本篇文章将深入探讨如何创建一个圆形进度条,即`CircleProgressView`。这个控件能够以圆形的形式展示进度,常见于加载动画或者显示数据百分比的...

    Android 自定义TimePicker组件

    // 其他自定义设置... } @Override protected void onDraw(Canvas canvas) { // 自定义绘制逻辑 } // 其他自定义方法... } ``` 在项目中使用这个自定义组件时,只需在XML布局文件中声明并引用自定义属性:...

Global site tag (gtag.js) - Google Analytics