zoukankan      html  css  js  c++  java
  • Android属性动画

    从http://www.android-doc.com/guide/topics/graphics/prop-animation.html翻译所得

    PropertyAnimation是一套可靠的动画框架,使用它几乎可以显示关于某个对象任何属性方面的动画,而不管这个属性的变化是否会反应到屏幕上。

    PropertyAnimation主要设置的参数有:

    1. 动画持续时间,默认300ms
    2. 基于时间的差值算法:这是动画的关键。插值是以时间为轴来计算你要展示的属性变化的。比如你要使一个按钮从位置0移动到位置100,且每10ms刷新一次,显示时间为0.5s,那么整个动画就需要50帧,每一帧的位置变动量为(100 - 0)/ 50 = 2.当然,这是匀速插值动画,也可以指定其他差值算法,比如先加速后减速,那么刚开始的那几帧可能就没有对应的匀速差值帧的变动量多。
    3. 重复次数以及显示行为
    4. 动画集合,比如某个动画集合的所有动画一起显示
    5. 帧刷新频率,默认10ms

    PropertyAnimation和ViewAnimation区别:

    ViewAnimation只能显示View对象,要显示非View对象则需要自己写代码实现。而且ViewAnimation只能针对View的比例、位姿等方面的动画显示,而对于比如背景颜色等则无能为力;

    ViewAnimation另一个不足的地方在于:它仅仅是改变了View对象的显示位置,而不是改变了该View真实的情况。比如你可以利用ViewAnimation使用一个Button从屏幕左边移动到右边,但却只有在Button真正定义的位置,比如屏幕左边,才会产生点击效果,而不是当Button显示在哪里,就在哪里可以响应点击事件。

    PropertyAnimation就没有这些限制,它可以显示View和非View对象,而且是actual的改变该对象。从系统层面上来说,PropertyAnimation比ViewAnimation更加可靠。也可以基于更多的方面来产生动画,比如颜色,差值,而不是仅仅是位置,甚至可以同步多个动画。

    但是ViewAnimation比PropertyAnimation安装(setup,可以理解为启动/准备时间)耗时更少,且需要编写的代码更少。如果ViewAnimation可以满足你的需求,则可以使用ViewAnimation。当然,同时使用两套动画系统也是可以的。

  • 相关阅读:
    java8新特性之Lambda表达式入门
    小结
    Kafka入门
    关于java多线程初试
    关于Netty入门
    IOS UITableView代码添加数据源和指定委托
    C#读书笔记1
    vs2008 C# Windows Mobile 智能设备开发 初步1
    Microsoft ActiveSync简介(来自网络)
    winForm单击用户区可移动窗体,代码控制窗体最大适中
  • 原文地址:https://www.cnblogs.com/willhua/p/5143739.html
Copyright © 2011-2022 走看看