Android自定义XY(对角线)动画
2015-07-29 20:58
501 查看
继承Animation类
覆写applyTransformation(),initialize()
Android中的补间动画分为下面几种:
(1)AlphaAnimation :透明度改变的动画。
(2)ScaleAnimation:大小缩放的动画。
(3)TranslateAnimation:位移变化的动画。
(4)RotateAnimation:旋转动画。
覆写applyTransformation(),initialize()
public class ERTXYAnimation extends Animation { /** 控件 */ private View mView = null; /** 控件fromX */ private int mFormX = 0; /** 控件fromY */ private int mFormY = 0; /** 控件toX */ private int mToX = 0; /** 控件toY */ private int mToY = 0; public ERTXYAnimation(View view, float fromX, float fromY, float toX, float toY) { this.mView = view; this.mFormX = (int) fromX; this.mToX = (int) toX; this.mFormY = (int) fromY; this.mToY = (int) toY; } //在绘制动画的过程中会反复的调用applyTransformation 函数,每次调用参数interpolatedTime值都会变化,该参数从0渐变为1,当该参数为1时表明动画结束。通过参数Transformation 来获取变换的矩阵(matrix),通过改变矩阵就可以实现各种复杂的效果。 @Override protected void applyTransformation(float interpolatedTime, Transformation t) { int x = (int) (mFormX + ((mToX - mFormX) * interpolatedTime)); int y = (int) (mFormY + ((mToY - mFormY) * interpolatedTime)); ViewGroup.LayoutParams l = mView.getLayoutParams(); if (l instanceof AbsoluteLayout.LayoutParams) { AbsoluteLayout.LayoutParams al = (AbsoluteLayout.LayoutParams) l; al.x = x; al.y = y; mView.setLayoutParams(al); mView.invalidate();//直接调用invalidate()方法,请求重新draw(),但只会绘制调用者本身。 } else { Utils.printLog("ERTXYAnimation", "Not AbsoluteLayout! This Class can not handle it!!"); return; } } //这是一个回调函数告诉Animation目标View的大小参数,在这里可以初始化一些相关的参数,例如设置动画持续时间、设置Interpolator、设置动画的参考点等。 @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); } }
Android中的补间动画分为下面几种:
(1)AlphaAnimation :透明度改变的动画。
(2)ScaleAnimation:大小缩放的动画。
(3)TranslateAnimation:位移变化的动画。
(4)RotateAnimation:旋转动画。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories