Android动画新势力——MotionLayout( 四 )

关键点类型详细说明

  1. parentRelative :父容器关系型 , 即关键点的位置是相对于整个父容器中的相对位置来指定 , percentX 和 percentY 分别表示 X 轴和Y轴相对位置 , 取值为 -1.0~1.0(负数时目标视图将移动到父容器外面) 。 需要注意的是:关键点的位置是相对父容器来指定 , 跟 “开始点” 和 “结束点” 位置无关 。
  2. deltaRelative:三角区域关系型 , 在目标视图整个运动序列移动的区域组成一个坐标轴 , X 为横轴 , Y 为纵轴 , 原点为 “开始点” , 视图移动的方向为坐标的正方向 。 percentX 和 percentY 分别为 X 轴和 Y 轴上的数值 , 控制关键点的位置 , 取值范围是 -1.0 ~ 1.0之间 , 负数表示在坐标轴的负值方向位置 。 framePosition 一样控制的是轨迹弧顶的位置 。
  3. pathRelative:路径关系型 , 即关键点的位置是相对于路径相对指定的 , 路径是指 “开始点” 和 “结束点” 的直线路径(构成 X 轴) , percentX 表示在 X 轴相对位置 , 0 表示在开始点 ,1表示在结束点;percentY 表示垂直于 X 轴(Y 轴)的相对位置 , 正数在 X 轴左侧 , 负数在 X 轴右侧 。|percentY 取值范围为-1.0~1.0 , Y 轴距离是以 “开始点” 和 “结束点”之间的距离为基数的百分比(也就是说 Y 轴的最大距离就是开始点和结束点直线距离的最大值 , 如果该值取0 , 弧度为0 , 则轨迹为直线) 。 另外 ,framePosition 控制的是轨迹弧顶的位置(而不是关键点的位置) , 大于 50 时偏向起始点 , 小于50时偏向结束点 , 弧顶两端轨迹 , 运动时间是相等的 , 如果取了不对等的值(非50) , 就可以实现快慢变化的效果 。
  1. android:alpha:视图的透明度
  2. android:elevation:视图的 Z 轴深度(在 API Level 21开始才有 , 像素单位 , 如dp)
  3. android:rotation:视图的旋转角度(默认方向)
  4. android:rotationX:视图 X 轴方向旋转角度
  5. android:rotationY:视图 Y 轴方向旋转角度
  6. android:scaleX:视图 X 轴方向缩放
  7. android:scaleY:视图 Y 轴方向缩放
  8. android:translationX:视图 X 轴方向的平移量(像素单位 , 如dp)
  9. android:translationY:视图 Y 轴方向的平移量(像素单位 , 如dp)
  10. android:translationZ:视图 Z 轴方向的平移量(在 API Level 21开始才有 , 像素单位 , 如dp)
元素中 , 您可以使用 元素设置属性 , 自定义属性不仅仅可以设置标准属性 , 也可以设置非标准的相关属性(例如:backgroundColor 背景色) , 但是必须要注意一点 , 设置的自定义属性 , 必须是在 View 中定义了 getter 和 setter 方法的 , 而且属性值的类型必须准确 。
一个 元素必须包含两个属性:
  1. motion:attributeName:属性名(必须)
  2. 必须包含以下含类型的属性值的一个:
motion:customColorValue: 适用于颜色
motion:customIntegerValue:适用于整数
motion:customFloatValue:适用于浮点值
motion:customStringValue:适用于字符串
motion:customDimension:适用于尺寸
motion:customBoolean:适用于布尔值
结语MotionLayout 在动画处理方面的能力非常强大 , 完全配置化 , 如果需要在布局中使用到动画的同学可以试试这个强大的布局 。


推荐阅读