指定视图在运动序列中特定时刻的位置。此属性用于调整运动的默认路径。
例如,如果一个对象从左上角开始,在右下角结束,则默认运动序列会沿对角线向下移动对象。通过添加一个或多个 <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值。可能的设置如下: parentRelativepercentX和percentY相对于父视图指定。X 是水平轴,从左侧的 0 到右侧的 1。Y 是垂直轴,0 是顶部,1 是底部。例如,如果您希望目标视图到达父视图右侧中间的一个点,请将
percentX设置为 1,将percentY设置为 0.5。deltaRelativepercentX和percentY相对于视图在整个运动序列中移动的距离指定。X 是水平轴,Y 是垂直轴。在这两种情况下,0 是视图在该轴上的起始位置,1 是最终位置。假设目标视图向上移动 100 dp,向右移动 100 dp,但您希望视图在运动的第一个四分之一向下移动 40 dp,然后向上呈弧形移动。请将
framePosition设置为 25,keyPositionType设置为deltaRelative,并将percentY设置为 -0.4。pathRelativeX 轴是目标视图沿路径移动的方向,0 是起始位置,1 是最终位置。Y 轴垂直于 X 轴,路径左侧为正值,右侧为负值。因此,视图的初始位置是
(0,0),最终位置是(1,0)。设置非零percentY会使视图向一侧或另一侧呈弧形移动。假设您希望视图用一半的运动序列覆盖总距离的 10%,然后加速覆盖另外 90%。请将
framePosition设置为 50,keyPositionType设置为pathRelative,并将percentX设置为 0.1。percentY保持为 0。