Android动画之属性动画(二)
来源:互联网 发布:冰点文库下载器 mac 编辑:程序博客网 时间:2024/05/05 18:47
定义
属性设置
属性动画和View Animation(补间动画)的区别
Animator类
ValueAnimator
实例
MainActivty类
运行的效果如下:
我们还可以自己创建一个对象来封装动画的变化值,如下所示
修改MainActivity的代码如下:
运行结果类似上图
那fraction是什么呢?截了个图。从0到1的小数。
fraction The elapsed, interpolated fraction of the animation.
这个应该动画过程中的插值小数。
ObjectAnimator
A subclass of ValueAnimator
that allows you to set a target object and object property to animate. This class updates the property accordingly when it computes a new value for the animation. You want to use ObjectAnimator
most of the time, because it makes the process of animating values on target objects much easier. However, you sometimes want to use ValueAnimator
directly becauseObjectAnimator
has a few more restrictions, such as requiring specific acessor methods to be present on the target object.
ObjectAnimator是ValueAnimator的子类,可以改变对象的属性值完成动画。我更愿意使用ObjectAnimator,因为它设置对象的动画更为简单。有时候你可能还得使用ValueAnimator,因为ObjectAnimator有一些限制,比如需要特定的方法展示在指定的对象上。
使用ObjectAnimator实现动画方式有两种,一种是XML,一种用JAVA代码实现。
就我自己使用而言,XML代码实现的动画,格式更清晰,一目了然就知道动画中包含哪些步骤,其次XML格式的不支持9和9以下的版本。Java代码实现,更容易做一些动态的处理,比如你的属性动画和屏幕的大小有直接的关系。动画的大小和比例需要根据运行屏幕的大小来动态计算,这个时候就推荐使用Java代码来实现。
其中的AnimatorSet提供组合动画能力的类。并可设置组中动画的时序关系,如同时播放、有序播放或延迟播放。
实例
XML方式实现
我们先用XML的方式实现一个动画。新建一个anim/animation.xml文件,表示动画的内容
通过xml文件很好分析动画的步骤。主要分为两个环节,一个是扩大下移的过程,一个是缩小上移的过程。
布局anim.xml文件如下所示
主类代码如下所示:
动画效果如下:
Java代码实现(动态计算,缩小到固定的大小)
另外,还可以通过AnimatorSet.Builder的方式将要播放的动画联系在一起。
参考链接:https://github.com/android-cn/android-open-project-analysis/blob/master/tech/animation/README.md(非常好的总结,推荐阅读)
- Android动画之属性动画(二)
- Android 动画之属性动画(二)
- android动画学习(二)之属性动画
- Android之属性动画(二)
- Android之属性动画(二)
- Android动画之属性动画(Property Animation)(二)
- Android自助餐之动画(二)属性动画
- Android 动画(二) 属性动画
- Android动画机制-属性动画(二)
- Android动画(二)-属性动画
- Android动画解析(二)-----属性动画
- Android动画详解之Android 动画属性和实现方法之帧动画(二)
- Android动画(二),属性动画
- Android动画(二)-属性动画
- Android动画学习-视图动画&属性动画(二)
- Android动画之属性动画(上)
- Android动画之属性动画(下)
- Android动画之属性动画(四)
- 天声人语
- PostThreadMessage和GetMessage
- android ndk 入门2 - 基本方法实现
- initWithCoder?编码与解码(序列化与反序列化)
- JavaScript Table 排序
- Android动画之属性动画(二)
- 天声人语
- VS2010 正则替换
- 加密jdbc配置文件中的用户名密码
- Android studio怎么获取SHA1数字签名
- 天声人语
- asp.net mvc实现rest风格返回json
- appium自动化测试中获取toast消息的解决方法
- 『《编程之法》读书笔记』——字符串旋转