《Android开发艺术探索》读书笔记--第7章 Android动画深入分析

  1. View 动画、帧动画、属性动画

7.1 View 动画

  1. 帧动画也属于 View 动画。
名称 名称 标签 作用
TranslateAnimation 平移 <translate 移动
ScaleAnimation 缩放 <scale 缩放
RotateAnimation 旋转 <rotate 旋转
AlphaAnimation 透明度 <alpha 透明度
  1. <set 表示动画集合 对应 AnimationSet

7.1.2 自定义 View 动画

  1. 继承 Animation 重写 initialize、applyTransformation(相应的矩阵变换)

7.1.3 帧动画

  1. 顺序播放一组预先定义好的图片,类型电影播放
  2. AnimationDrawable
  3. <animation-list
  4. 比较容易引起 OOM,避免使用过多尺寸较大的图片

7.2 View动画的特殊使用场景

7.2.1 LayoutAnimation

  1. 作用yu ViewGroup,子元素出场都带有动画效果
<layoutAnimation
  android:delay = "0.5"
  android:animationOrder = "normal|reverse|random"
  android:animation="" 指定入场动画

1.通过 android:layoutAnimation 使用
2.LayoutAnimationController 使用
  1. 动画默认刷新率为 10ms/帧

7.2.2 Activity切换效果

  1. overridePendingTransition
  2. 必须位于 startActivity 或 finish 后面

7.3 属性动画

  1. 是 API 11 新加入特性

7.3.1 使用属性动画

  1. 可以对任意对象的属性进行动画,不仅是 View
ObjectAnimator.ofFloat(myObject,"translationY",-myObject.getHeight()).start();
  1. <objectAnimator
  2. <animator
  3. 使用
AnimatorInflater.loadAnimator

7.3.2 理解插值器和估值器

  1. TimeInterpolator:时间插值器,根据时间流逝的百分比计算出当前属性值改变的百分比,预置(LinearInterpolator、AccelerateDecelerateInterpolator、DecelerateInterpolator)
  2. TypeEvaluator:类型估值算法,估值器,根据当前属性改变的百分比计算改变后的属性值,预置(IntEvalurot、FloatEvaluator、ArgbEvaluator)
  3. 属性动画要求对象必需有 set、get(可选)
  4. 自定义插值器要实现 Interpolator 或者 TimeInterpolator
  5. 自定义估值器要实现 TypeEvaluator

7.3.3 属性动画的监听器

  1. AnimatorupdateListener
  2. AnimatorListener

7.3.4 对任意属性做动画

  1. 条件
    1.必需提供 setXXX 方法,如果没有初始值,还需要提供 getXXX
    2.改变必需通过某种方法反映出来,比如会带来 UI 改变之类
  2. 一定要使用属性动画
    1.加上 get 和 set 方法
    2.用一个类来包装原始对象,间接提供 get 和 set 方法
    3.采用 ValueAnimator(本身不作用于任何对象),监听动画过程,自己实现属性的改变

7.3.5 属性动画的工作原理

  1. 属性动画要求动画作用的对象提供该属性的 set 方法,属性动画根据你传递的该属性的初始值和最终值,以动画的效果多次调用 set 方法。随着时间的推移,所传递的值越来越接近最终值。

7.4 使用动画的注意事项

事项
OOM 主要出现在帧动画中,图片数量多,且比较大容易出现
内存泄露 无限循环动画,要在 Activity 退出是及时停止
兼容性问题 3.0以下有兼容性问题
View动画问题 1.只是对View做影像,没有改变 View的位置,有时候 setVisibility(GONE) 失效,要使用 view.clearAnimation
不要使用 px 兼容问题
动画元素交互 3.0以前,无法交互
硬件加速 使用动画过程中,建议开启硬件加速,提高动画流畅性能
发布了40 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_44947117/article/details/104146938