모션 시퀀스 중에 특정 시점의 뷰 위치를 지정합니다. 이 속성은 모션의 기본 경로를 조정하는 데 사용합니다.
예를 들어 객체가 왼쪽 상단에서 시작하여 오른쪽 하단 모서리에서 끝나면 기본 모션 시퀀스에 따라 객체가 화면 아래로 대각선으로 이동합니다. <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
percentX
및percentY
값이 해석되는 방식을 지정합니다. 가능한 설정은 다음과 같습니다.parentRelative
percentX
와percentY
는 상위 뷰를 기준으로 지정됩니다. X는 가로축으로, 왼쪽은 0부터 오른쪽은 1까지입니다. Y는 세로축이며 0은 상단, 1은 하단입니다.예를 들어 타겟 뷰가 상위 뷰의 오른쪽 중간 지점에 도달하게 하려면
percentX
를 1로,percentY
을 0.5로 설정합니다.deltaRelative
percentX
및percentY
는 뷰가 전체 모션 시퀀스에서 이동하는 거리를 기준으로 지정됩니다. X는 가로축이고 Y는 세로축입니다. 두 경우 모두 0은 해당 축에서 뷰의 시작 위치가고 1은 최종 위치입니다.타겟 뷰가 위로 100dp, 오른쪽으로 100dp 이동하지만 모션의 1/4 동안 뷰를 40dp 아래로 이동했다가 다시 위로 이동한다고 가정해 보겠습니다.
framePosition
를 25로,keyPositionType
를deltaRelative
로,percentY
를 -0.4로 설정합니다.pathRelative
X축은 타겟 뷰가 경로를 따라 이동하는 방향이며 0이 시작 위치, 1이 최종 위치입니다. Y축은 X축과 직각을 이루며, 양수 값은 경로 왼쪽에, 음수 값은 오른쪽에 있습니다. 따라서 뷰의 초기 위치는
(0,0)
이고 최종 위치는(1,0)
입니다. 0이 아닌percentY
를 설정하면 뷰가 한 방향 또는 다른 방향으로 호를 형성합니다.뷰가 모션 시퀀스의 절반을 사용하여 총 거리의 10% 를 포함하고 속도를 높여 나머지 90%를 포함하도록 하려고 합니다.
framePosition
를 50으로,keyPositionType
을pathRelative
로,percentX
를 0.1로 설정합니다.percentY
는 0으로 유지됩니다.