Especifica la posición de una vista en un momento determinado durante la secuencia de movimiento. El atributo se usa para ajustar la ruta predeterminada del movimiento.
Por ejemplo, si un objeto comienza en la esquina superior izquierda y termina en la
en la esquina inferior derecha, la secuencia de movimiento predeterminada mueve el objeto en diagonal hacia abajo
la pantalla. Si agregas uno o más elementos <KeyPosition>
, puedes deformar la
ruta de acceso.
Sintaxis
<KeyPosition motion:motionTarget="@id/targetPath" motion:framePosition="percentage" motion:keyPositionType="type" motion:percentX="xOffset" motion:percentY="yOffset" />
Atributos
motion:motionTarget
- Vista cuyo movimiento está controlado por este
<KeyPosition>
. motion:framePosition
- Número entero del 1 al 99 que especifica cuándo alcanza la vista en la secuencia de movimiento
el punto que especifica este
<KeyPosition>
. Por ejemplo,framePosition
es 25; la vista alcanza el punto especificado. un cuarto del recorrido del movimiento. motion:percentX
,motion:percentY
- Especifica la posición que alcanza la vista. El
keyPositionType
especifica cómo se interpretan estos valores. motion:keyPositionType
- Especifica cómo se calculan los valores
percentX
ypercentY
. no se interpretan. Las opciones de configuración posibles son las siguientes: parentRelative
percentX
ypercentY
se especifican en relación con la vista superior. X es el eje horizontal, que va de 0 a la izquierda. del lado derecho a 1 del lado derecho. Y es el eje vertical, donde 0 es el superior y 1 es la parte inferior.Por ejemplo, si quieres que la vista de destino llegue a un punto en la mitad del lado derecho de la vista superior, establece
percentX
en 1 y DepercentY
a 0.5.deltaRelative
percentX
ypercentY
se especifican en relación con la distancia que recorre la vista en el transcurso de toda la secuencia de movimiento. X es el eje horizontal y Y es el eje vertical. En ambos 0 es la posición inicial de la vista en ese eje y 1 es la última posición posición.Supongamos que la vista de destino se mueve 100 dp hacia arriba y 100 dp hacia la derecha, pero quieres la vista se mueva 40 dp hacia abajo durante el primer cuarto del movimiento y luego arriba. Establecer
framePosition
en 25 ykeyPositionType
endeltaRelative
ypercentY
a -0.4.pathRelative
El eje X es la dirección que mueve la vista de destino a lo largo del ruta, donde 0 es la posición inicial y 1 es la última. El El eje Y es perpendicular al eje X, con valores positivos a la izquierda del y los valores negativos a la derecha. Entonces, la posición inicial de la vista es
(0,0)
y la posición final es(1,0)
. Establecer unpercentY
distinto de cero hace que la vista se dirija hacia una dirección, o bien entre sí.Supongamos que quieres que la vista tome la mitad de la secuencia de movimiento para cubrir el 10% de la distancia total y, luego, acelera para cubrir el otro 90%. Definir De
framePosition
a 50, dekeyPositionType
apathRelative
ypercentX
a 0.1.percentY
sigue siendo 0.