2015-03-31 16 views
15

Ho provato entrambe le funzioni e non so davvero perché dovrei usare l'elevazione al posto di translationz o viceversa.Differenza tra elevazione e traduzioneZ

Entrambi generano ombra quando li ho usati.

Devo usare allo stesso tempo (con lo stesso valore)? Dovrei usare solo uno?

Grazie in anticipo!

EDIT:

ho fatto un confronto visivo può vedere chiaramente:

comparison elevation vs translationZ

La conclusione che ottengo è (almeno per questo intervallo di 0 a 16 dp) uno dei loro sono superflui.

Vedo la stessa ombra in 8 vs 8 e 16 vs 16 e la stessa ombra in 16 vs 8 + 8.

Ma non ho una bella visione, cosa ne pensi ragazzi?

risposta

18

Questo è perché il valore Z effettivo è la somma del elevation e translationZ

Dal docs, il elevation è "base profondità z della vista" e questa è una variabile statica, mentre translationZ è dinamico .

Quindi elevation è il valore iniziale e per le animazioni è necessario utilizzare translationZ.

Source

+0

un'occhiata alla mia modifica, ho aggiunto un confronto visivo – Dahnark

+0

proposito la risposta, posso ottenere la stessa soluzione utilizzando sempre translationZ, all'inizio e poi fare l'animazione (ad esempio, inizio alle 8DP e tradurlo a 16dp, e più tardi tornare a 8dp), usando l'elevazione + traduzione – Dahnark

+0

@Dahnark Questo è vero, ma per esempio quando si hanno più elementi con un'animazione pop-out (o zoom o ....), si può ancora usa la proprietà elevation per visualizzare l'elevazione di tutti quegli elementi separatamente. – Ferdau