モーション シーケンスの特定の時点におけるビューの位置を指定します。この属性は、デフォルトのモーションパスを調整するために使用されます。

たとえば、オブジェクトが左上隅で始まり、右下隅で終わる場合、デフォルトのモーション シーケンスにより、オブジェクトが画面の斜め下に移動されます。<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:percentXmotion:percentY
ビューが到達する位置を指定します。keyPositionType 属性では、これらの値の解釈方法を指定します。
motion:keyPositionType
percentXpercentY の値の解釈方法を指定します。考えられる設定は次のとおりです。
  • parentRelative
  • percentXpercentY は、親ビューを基準にして指定されます。X は横軸です。範囲の左側は 0、右側は 1 です。Y は縦軸で、0 が上部、1 が下部です。

    たとえば、ターゲット ビューが親ビューの右側の中間点に到達するようにする場合は、percentX を 1 に、percentY を 0.5 に設定します。

  • deltaRelative
  • percentXpercentY は、モーション シーケンス全体にわたってビューが移動する距離に相対的に指定します。X が横軸、Y が縦軸です。どちらの場合も、0 はその軸のビューの開始位置、1 は最終位置です。

    ターゲット ビューを右に 100 dp、右に 100 dp 移動し、最初の 4 分の 1 の間ビューを 40 dp 下に移動させ、円弧に戻るとします。framePosition を 25、keyPositionTypedeltaRelativepercentY を -0.4 に設定します。

  • pathRelative
  • X 軸はターゲット ビューがパスに沿って移動する方向で、0 は開始位置、1 は最終位置です。Y 軸は X 軸に垂直で、パスの左側は正の値、右側は負の値です。したがって、ビューの初期位置は (0,0) で、最終位置は (1,0) です。ゼロ以外の percentY を設定すると、ビューは一方向に円弧します。

    モーション シーケンスの半分で全距離の 10% をカバーし、残りの 90% をビューの速度を上げてカバーするとします。framePosition を 50、keyPositionTypepathRelativepercentX を 0.1 に設定します。percentY は 0 のままです。

親要素