Especifica a posição de uma visualização em um momento específico durante a sequência de movimento. Esse atributo é usado para ajustar o caminho padrão do movimento.
Por exemplo, se um objeto começa no canto superior esquerdo e termina no
canto inferior direito, a sequência de movimento padrão move o objeto diagonalmente
para baixo na tela. Ao adicionar um ou mais elementos <KeyPosition>
, você pode deformar o
caminho.
Sintaxe
<KeyPosition motion:motionTarget="@id/targetPath" motion:framePosition="percentage" motion:keyPositionType="type" motion:percentX="xOffset" motion:percentY="yOffset" />
Atributos
motion:motionTarget
- Confira quais movimentos são controlados por este
<KeyPosition>
. motion:framePosition
- Número inteiro de 1 a 99 que especifica em que momento na sequência de movimento a visualização atinge
o ponto especificado por esse
<KeyPosition>
. Por exemplo, seframePosition
for 25, a visualização atingirá o ponto especificado um quarto do movimento. motion:percentX
,motion:percentY
- Especifica a posição que a visualização alcança. O atributo
keyPositionType
especifica como esses valores são interpretados. motion:keyPositionType
- Especifica como os valores
percentX
epercentY
são interpretados. As configurações possíveis são as seguintes: parentRelative
percentX
epercentY
são especificados em relação à visualização mãe. X é o eixo horizontal, variando de 0 para o lado esquerdo a 1 para o direito. Y é o eixo vertical, sendo 0 a parte superior e 1 a inferior.Por exemplo, se você quiser que a visualização de destino atinja um ponto no meio do lado direito da visualização mãe, defina
percentX
como 1 epercentY
como 0,5.deltaRelative
percentX
epercentY
são especificados em relação à distância que a visualização se move ao longo de toda a sequência de movimento. X é o eixo horizontal e Y é o vertical. Em ambos os casos, 0 é a posição inicial da visualização nesse eixo, e 1 é a posição final.Suponha que a visualização de destino se mova 100 dp para cima e 100 dp para a direita, mas você quer que ela se mova para baixo em 40 dp no primeiro quarto do movimento e, em seguida, faça um arco para cima. Defina
framePosition
como 25,keyPositionType
comodeltaRelative
epercentY
como -0, 4.pathRelative
O eixo X é a direção em que a visualização de destino se move ao longo do caminho, sendo 0 a posição inicial e 1 a final. O eixo Y é perpendicular ao eixo X, com valores positivos à esquerda do caminho e valores negativos à direita. Portanto, a posição inicial da visualização é
(0,0)
, e a posição final é(1,0)
. Definir umpercentY
diferente de zero faz com que a visualização gere um arco para uma direção ou para outra.Suponha que você queira que a visualização leve metade da sequência de movimento para cobrir 10% da distância total e, em seguida, acelere para cobrir os outros 90%. Defina
framePosition
como 50,keyPositionType
comopathRelative
epercentX
como 0, 1.percentY
permanece 0.