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, seframePosition
è 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
epercentY
. Le possibili impostazioni sono le seguenti: parentRelative
percentX
epercentY
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 epercentY
su 0,5.deltaRelative
I valori
percentX
epercentY
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
sudeltaRelative
epercentY
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 valorepercentY
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
supathRelative
epercentX
su 0, 1.percentY
rimane 0.