• 【安卓】动画


    动画显示技术

    帧动画

    帧动画的实现

    帧动画

    ​ 短时间内连续播放,在动画图形AnimationDrawable定义。

    ​ 一般用ImageView承载AnimationDrawable

    ​ 在安卓9后支持直接播放GIF动图

    ​ 淡入淡出动画

    ​ 过渡图形TransitionDrawable 处理两张图片之间的渐变显示

    补间动画 Animation

    补间动画(只用提供起始、终止状态)

    • 补间动画的种类

      • 灰度动画 AlphaAnimation。需设定视图透明度的前后数值
      • 平移动画 TranslateAnimation。左上角位置
      • 缩放动画 ScaleAnimation。指定横纵坐标的前后缩放比例
      • 旋转动画 RotateAnimation。指定视图的旋转角度
    • 补间动画的原理

      • 根据插值时间计算当前的状态值
      • 在宿主视图上使用该状态值进行变换操作
    • 集合动画

      • 多个补间动画联合起来的
      • 通过addAnimation方法添加补间动画
    • 在飞掠横幅中使用补间动画

      • viewFlipper 有四个操作动画的方法
      • 可以是的轮播效果更流畅

    属性动画 ObjectAnimator

    • 属性动画的用法
      • 允许视图的所有属性都能实现渐变的动画效果,比如背景颜色,文字颜色,文字大小
      • 而补间动画只能设置透明度、旋转角度、xy轴的缩放比例、横纵坐标的平移距离
    • 属性动画组合AnimatorSet
    • 插值器和估值器
      • 插值器用来控制属性值的变化速率,也可以理解为动画播放的速度,默认是匀速播放。
      • 估值器专用于属性动画,描述属性的数值变化要采取的单位

    矢量动画 vectorDrawable

    • 矢量图形,由多个向量拼接在一起,形成的矢量图形
      • 需要在build.gradle中添加“vectorDrawables.useSupportLibrary = true // 矢量图形的XML定义文件需要”
    • 矢量图形的结构定义
      • 有xml文件定义,可分为根标签,组标签,路径标签
      • 根标签,定义一个完整的矢量图形
      • 组标签,定义一组路径的共同行为,比如一起旋转,一起缩放,一起平移
    • 可缩放矢量图形SVG标记
      • path属性需要符合SVG标准
      • 每个命令,大写表示参数是绝对坐标,小写诗相对坐标
      • large-arc-flag 表示大弧标志、sweep-flag表示轨迹方向
    • 利用属性动画实现矢量动画
      • AnimatedVectorDrawable 是一个矢量动画类,需要通过属性动画、xml标签实现动画定义
      • 矢量动画只有三类属性可以用作动画
        • 变换类属性,包括透明度、旋转、x、y
        • 路径类属性
        • 修剪类属性,android:trimPathStart、android:trimPathEnd。可实现矢量图形逐步展开或者逐步消失的动画效果

    动画的实现手段

    • 使用延时重绘
      • 代表技术为帧动画
    • 设置状态参数
      • 代表技术为补间动画和属性动画
    • 滚动器 Scroller
      • 为了解决拖拽产生的卡顿
  • 相关阅读:
    结构层HTML + 表现层CSS
    移动端:项目实战
    移动端:开发技巧
    两个对象数组,把其中相同的name的before相加,不同的对象添加到数组里
    js中遍历数组和遍历对象
    css学习笔记一
    Angular2父子组件数据传递之@ViewChild获取子组件详解
    css知识点总结
    js中的apply,call,arguments,callee,caller详解
    javascript中的排序
  • 原文地址:https://www.cnblogs.com/ckxkexing/p/14217033.html
Copyright © 2020-2023  润新知