モーション シーケンスの特定の時点におけるビューの位置を指定します。この属性は、デフォルトのモーションパスを調整するために使用されます。
たとえば、オブジェクトが左上隅で始まり、右下隅で終わる場合、デフォルトのモーション シーケンスにより、オブジェクトが画面の斜め下に移動されます。<KeyPosition>
要素を 1 つ以上追加すると、パスを変形できます。
構文
<KeyPosition motion:motionTarget="@id/targetPath" motion:framePosition="percentage" motion:keyPositionType="type" motion:percentX="xOffset" motion:percentY="yOffset" />
属性
motion:motionTarget
- この
<KeyPosition>
でモーションが制御されているビュー。 motion:framePosition
- モーション シーケンスのどの時点でビューがこの
<KeyPosition>
で指定された点に到達するかを指定する 1 ~ 99 の整数。たとえば、framePosition
が 25 の場合、ビューはモーションの 4 分の 1 の時点で指定されたポイントに到達します。 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 移動し、最初の 4 分の 1 の間ビューを 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 のままです。