<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 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>, é possível 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 de quem o movimento é controlado por este <KeyPosition>.
motion:framePosition
Número inteiro de 1 a 99 especificando quando, na sequência de movimento, a visualização atinge o ponto especificado por este <KeyPosition>. Por exemplo, se framePosition for 25, a visualização atinge o ponto especificado. um quarto do caminho.
motion:percentX, motion:percentY
Especificar a posição que a visualização atinge. O keyPositionType especifica como esses valores são interpretados.
motion:keyPositionType
Especifica como os valores percentX e percentY são interpretado. Estas são as possíveis configurações:
  • parentRelative
  • percentX e percentY são especificados em relação a visualização mãe. X é o eixo horizontal, variando de 0 para a esquerda um lado para o lado direito. Y é o eixo vertical, com 0 sendo o na parte superior e 1 na parte inferior.

    Por exemplo, se você quiser que a visualização de destino alcance um ponto no meio da lado direito da visualização mãe, defina percentX como 1 e percentY a 0,5.

  • deltaRelative
  • percentX e percentY são especificados em relação a distância que a visualização se move ao longo de toda a sequência de movimento. X é o eixo horizontal e Y é o eixo vertical. Em ambos casos, 0 é a posição inicial da visualização nesse eixo e 1 é a posição final posição

    Suponha que a visualização de destino se mova 100 dp para cima e 100 dp para a direita, mas você a visualização se move 40 dp para baixo no primeiro quarto do movimento e depois faz um arco para trás. para cima. Defina framePosition como 25 e keyPositionType como deltaRelative e percentY a -0, 4.

  • pathRelative
  • O eixo X é a direção para onde a visualização de destino se move ao longo do caminho, sendo 0 a posição inicial e 1 a posição final. A O eixo Y é perpendicular ao eixo X, com valores positivos à esquerda do e valores negativos para a direita. Portanto, a posição inicial da visualização é (0,0), e a posição final é (1,0). Definir um um percentY diferente de zero faz com que a visualização faça um arco para uma direção ou a entre si.

    Suponha que você queira que a visualização ocupe metade da sequência de movimento para cobrir 10% do a distância total e acelere para cobrir os outros 90%. Definir framePosition a 50, keyPositionType a pathRelative e percentX a 0, 1. percentY permanece 0.

Contido em