Android Studio 2.0 beta 6
Sto cercando di utilizzare ViewPropertyAnimator per spostare un ImageView (ivSettings)
all'interno di una barra degli strumenti in modo che sia 20dp da destra e 20dp dall'alto, dalla posizione corrente è. E sposta il ImageView (ivSearch)
20dp da sinistra e in alto.ottenere la larghezza del layout genitore
Le immagini sono contenute in un Toolbar
.
Questo è lo stato iniziale e voglio spostare le icone negli angoli superiori all'interno della barra degli strumenti.
Il codice che sto usando è questo per ottenere la larghezza e quindi sottrarre un valore per ottenere i ivSettings di essere 20dp da destra.
final DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final float widthPx = displayMetrics.widthPixels;
ivSearch.animate()
.setInterpolator(new AccelerateInterpolator())
.x(20)
.y(20)
.setDuration(250)
.start();
ivSettings.animate()
.setInterpolator(new AccelerateInterpolator())
.x(widthPx - 160)
.y(20)
.setDuration(250)
.start();
Tuttavia, dopo aver provato questo su diverse dimensioni dello schermo non riesco a ottenere il calcolo della larghezza esatta. C'è un modo migliore per farlo?
Molte grazie per qualsiasi suggerimento
Prova a utilizzare la larghezza dalla barra degli strumenti. – Piyush
Ho impostato la larghezza su "match_parent", quindi toolbar.getWidth() restituirà sempre 0. – ant2009
Stai convertendo dp in pixel o larghezzaPx - 160 l'espressione per il calcolo della larghezza su ciascun dispositivo? – Piyush