指定在运动序列期间特定时刻的视图位置。此属性用于调整运动的默认路径。
例如,如果一个对象从左上角开始,到右下角结束,则默认运动序列会使对象沿屏幕对角线向下移动。通过添加一个或多个 <KeyPosition>
元素,您可以变形路径。
语法
<KeyPosition motion:motionTarget="@id/targetPath" motion:framePosition="percentage" motion:keyPositionType="type" motion:percentX="xOffset" motion:percentY="yOffset" />
属性
motion:motionTarget
- 受此
<KeyPosition>
控制运动的视图。 motion:framePosition
- 从 1 到 99 的整数,指定视图在运动序列中何时到达此
<KeyPosition>
指定的点。例如,如果framePosition
为 25,则视图在运动进行四分之一时到达指定点。 motion:percentX
、motion:percentY
- 指定视图到达的位置。
keyPositionType
属性指定如何解释这些值。 motion:keyPositionType
- 指定如何解释
percentX
和percentY
值。可能的设置如下 parentRelative
percentX
和percentY
相对于父视图指定。X 是水平轴,从左侧的 0 到右侧的 1。Y 是垂直轴,0 为顶部,1 为底部。例如,如果您希望目标视图到达父视图右侧中间位置,请将
percentX
设置为 1,将percentY
设置为 0.5。deltaRelative
percentX
和percentY
相对于视图在整个运动序列中移动的距离指定。X 是水平轴,Y 是垂直轴。在这两种情况下,0 都是该轴上视图的起始位置,1 是最终位置。假设目标视图向上移动 100 dp,向右移动 100 dp,但您希望视图在运动的前四分之一向下移动 40 dp,然后向后向上弯曲。将
framePosition
设置为 25,将keyPositionType
设置为deltaRelative
,将percentY
设置为 -0.4。pathRelative
X 轴是目标视图在路径过程中移动的方向,0 为起始位置,1 为最终位置。Y 轴垂直于 X 轴,正值位于路径左侧,负值位于右侧。因此,视图的初始位置为
(0,0)
,最终位置为(1,0)
。设置非零percentY
会导致视图向一个方向或另一个方向弯曲。假设您希望视图在运动序列的一半覆盖总距离的 10%,然后加速覆盖其余 90%。将
framePosition
设置为 50,将keyPositionType
设置为pathRelative
,将percentX
设置为 0.1。percentY
保持为 0。