Android进阶学习-自定义动画(电视关闭效果)
2016-05-26 00:00
639 查看
效果图:
对于自定义动画,只需要重写Animation类的applyTransformation方法就可以了.
protected void applyTransformation(float interpolatedTime, Transformation t) {
}
其中interpolatedTime参数是差值器()的时间因子Interpolator,不同的差值器同一时间计算出来的是不一样的.此值是由当前动画完成的百分比和当前时间所对应的差值计算得来的.取值范围是0-1.我的理解就是下一阶段将要 完成整个动画的百分比,不知道是否正确.
第二个参数Transformation是矩阵的封装类,它封装了一下方法去操作矩阵.
所以可以写出关闭电视的动画类是这样的:
调用代码很简单:
对于自定义动画,只需要重写Animation类的applyTransformation方法就可以了.
protected void applyTransformation(float interpolatedTime, Transformation t) {
}
其中interpolatedTime参数是差值器()的时间因子Interpolator,不同的差值器同一时间计算出来的是不一样的.此值是由当前动画完成的百分比和当前时间所对应的差值计算得来的.取值范围是0-1.我的理解就是下一阶段将要 完成整个动画的百分比,不知道是否正确.
第二个参数Transformation是矩阵的封装类,它封装了一下方法去操作矩阵.
所以可以写出关闭电视的动画类是这样的:
[code=plain] class OffTVAnimation extends Animation { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { Matrix matrix = t.getMatrix(); matrix.preScale(1, 1 - interpolatedTime, view.getWidth() / 2, view.getHeight() / 2); /** * 使宽度不缩放,高度缩小最后是0.然后后面两个参数是按被缩放的view的中心点缩放 */ view.setAlpha(1 - interpolatedTime); } @Override public void initialize(int width, int height, int parentWidth, int parentHeight) { super.initialize(width, height, parentWidth, parentHeight); setDuration(200); setInterpolator(new DecelerateInterpolator()); setFillAfter(true); } }
调用代码很简单:
[code=plain] OffTVAnimation offTVAnimation = new OffTVAnimation(); view.startAnimation(offTVAnimation);
相关文章推荐
- Gifski:一个跨平台的高质量 GIF 编码器
- 模仿动画的放大缩小容器
- jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
- Android实现定制返回按钮动画效果的方法
- Android中ViewFlipper的使用及设置动画效果实例详解
- jQuery实现美观的多级动画效果菜单代码
- php判断GIF图片是否为动画的方法
- jQuery实现动画效果circle实例
- HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
- 浅析JavaScript动画
- js排序动画模拟-插入排序
- javascript+HTML5的Canvas实现Lab单车动画效果
- 基于javascript实现漂亮的页面过渡动画效果附源码下载
- js实现按钮颜色渐变动画效果
- 超赞的jQuery图片滑块动画特效代码汇总
- jQuery实现连续动画效果实例分析
- 利用jquery制作滚动到指定位置触发动画
- jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
- jQuery实现带有洗牌效果的动画分页实例
- jQuery动画效果相关方法实例分析