<PosizioneChiave>

Specifica la posizione di una vista in un momento specifico durante la sequenza di movimento. Questo attributo viene utilizzato per regolare il percorso predefinito del movimento.

Ad esempio, se un oggetto inizia nell'angolo in alto a sinistra e termina nell'angolo in basso a destra, la sequenza di movimento predefinita sposta l'oggetto diagonalmente verso il basso sullo schermo. Aggiungendo uno o più elementi <KeyPosition>, puoi deformare il percorso.

Sintassi

<KeyPosition
    motion:motionTarget="@id/targetPath"
    motion:framePosition="percentage"
    motion:keyPositionType="type"
    motion:percentX="xOffset"
  motion:percentY="yOffset"
/>

Attributi

motion:motionTarget
Visualizza il movimento controllato da questo <KeyPosition>.
motion:framePosition
Numero intero da 1 a 99 che specifica quando nella sequenza di movimento la vista raggiunge il punto specificato da questo <KeyPosition>. Ad esempio, se framePosition è 25, la visualizzazione raggiunge il punto specificato a un quarto del percorso nel movimento.
motion:percentX, motion:percentY
Specifica la posizione raggiunta dalla visualizzazione. L'attributo keyPositionType specifica come vengono interpretati questi valori.
motion:keyPositionType
Specifica come vengono interpretati i valori percentX e percentY. Le possibili impostazioni sono le seguenti:
  • parentRelative
  • percentX e percentY sono specificati in relazione alla vista principale. X è l'asse orizzontale, che va da 0 per il lato sinistro a 1 per il lato destro. Y è l'asse verticale, dove 0 è la parte superiore e 1 è la parte inferiore.

    Ad esempio, se vuoi che la vista target raggiunga un punto a metà del lato destro della vista principale, imposta percentX su 1 e percentY su 0,5.

  • deltaRelative
  • I valori percentX e percentY vengono specificati in base alla distanza di spostamento della vista nel corso dell'intera sequenza di movimento. X è l'asse orizzontale e Y è l'asse verticale. In entrambi i casi, 0 è la posizione iniziale della vista su quell'asse e 1 è la posizione finale.

    Supponiamo che la vista target si sposti di 100 dp in alto e di 100 dp a destra, ma tu voglia che la vista si sposti verso il basso di 40 dp per il primo quarto del movimento, per poi tornare all'arco in alto. Imposta framePosition su 25, keyPositionType su deltaRelative e percentY su -0, 4.

  • pathRelative
  • L'asse X è la direzione in cui la vista target si sposta lungo il percorso, dove 0 rappresenta la posizione iniziale e 1 la posizione finale. L'asse Y è perpendicolare all'asse X, con valori positivi a sinistra del percorso e valori negativi a destra. La posizione iniziale della vista è quindi (0,0), mentre la posizione finale è (1,0). Se imposti un valore percentY diverso da zero, la vista crea un arco in una direzione o nell'altra.

    Supponiamo che tu voglia che la visualizzazione registri metà della sequenza di movimento per coprire il 10% della distanza totale, quindi aumenti la velocità per coprire il restante 90%. Imposta framePosition su 50, keyPositionType su pathRelative e percentX su 0, 1. percentY rimane 0.

Contenuto in