<KeyPosition>

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, se framePosition 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 e percentY são interpretados. As configurações possíveis são as seguintes:
  • parentRelative
  • percentX e percentY 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 e percentY como 0,5.

  • deltaRelative
  • percentX e percentY 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 como deltaRelative e percentY 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 um percentY 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 como pathRelative e percentX como 0, 1. percentY permanece 0.

Contido em