<KeyPosition>

모션 시퀀스 중에 특정 시점의 뷰 위치를 지정합니다. 이 속성은 모션의 기본 경로를 조정하는 데 사용합니다.

예를 들어 객체가 왼쪽 상단에서 시작하여 오른쪽 하단 모서리에서 끝나면 기본 모션 시퀀스에 따라 객체가 화면 아래로 대각선으로 이동합니다. <KeyPosition> 요소를 하나 이상 추가하여 경로를 변경할 수 있습니다.

문법

<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이면 뷰는 모션의 1/4 지점에 지정된 지점에 도달합니다.
motion:percentY motion:percentX
뷰가 도달하는 위치를 지정합니다. keyPositionType 속성은 이러한 값이 해석되는 방식을 지정합니다.
motion:keyPositionType
percentXpercentY 값이 해석되는 방식을 지정합니다. 가능한 설정은 다음과 같습니다.
  • parentRelative
  • percentXpercentY는 상위 뷰를 기준으로 지정됩니다. X는 가로축으로, 왼쪽은 0부터 오른쪽은 1까지입니다. Y는 세로축이며 0은 상단, 1은 하단입니다.

    예를 들어 타겟 뷰가 상위 뷰의 오른쪽 중간 지점에 도달하게 하려면 percentX를 1로, percentY을 0.5로 설정합니다.

  • deltaRelative
  • percentXpercentY는 뷰가 전체 모션 시퀀스에서 이동하는 거리를 기준으로 지정됩니다. X는 가로축이고 Y는 세로축입니다. 두 경우 모두 0은 해당 축에서 뷰의 시작 위치가고 1은 최종 위치입니다.

    타겟 뷰가 위로 100dp, 오른쪽으로 100dp 이동하지만 모션의 1/4 동안 뷰를 40dp 아래로 이동했다가 다시 위로 이동한다고 가정해 보겠습니다. framePosition를 25로, keyPositionTypedeltaRelative로, percentY를 -0.4로 설정합니다.

  • pathRelative
  • X축은 타겟 뷰가 경로를 따라 이동하는 방향이며 0이 시작 위치, 1이 최종 위치입니다. Y축은 X축과 직각을 이루며, 양수 값은 경로 왼쪽에, 음수 값은 오른쪽에 있습니다. 따라서 뷰의 초기 위치는 (0,0)이고 최종 위치는 (1,0)입니다. 0이 아닌 percentY를 설정하면 뷰가 한 방향 또는 다른 방향으로 호를 형성합니다.

    뷰가 모션 시퀀스의 절반을 사용하여 총 거리의 10% 를 포함하고 속도를 높여 나머지 90%를 포함하도록 하려고 합니다. framePosition를 50으로, keyPositionTypepathRelative로, percentX를 0.1로 설정합니다. percentY는 0으로 유지됩니다.

포함된 요소