Also, zu meinem Bedauern habe ich herausgefunden, während ich auf einem älteren Gerät getestet habe, dass die View-Klasse vor der API-Version 11 keine setAlpha- oder setX-Methoden hat. Kann jemand eine Alternative vorschlagen? Ich verschiebe derzeit eine Ansicht, indem ich ihren X-Standort aktualisiere und sie basierend auf Benutzerinteraktion ein- und ausfade.
Antwort
Zu viele Anzeigen?Sie können standardmäßige Animation
verwenden, um solche Programlogik zu implementieren, wie z.B. AlphaAnimation
und TranslateAnimation
, um die Bewegung Ihrer View
zu machen. Aber Sie sollten auch im Hinterkopf behalten, dass die originale Position der View
in ihrem Elternlayout nicht verändert wird (nur Pixels werden neu gezeichnet). Das bedeutet, dass wenn der Benutzer auf das neue Bild der View
tippt, diese View
das Ereignis nicht erhält, da ihr Rect
an der alten Position bleibt.
Sie könnten das Rechteck der View
nach dem Ende der Animation neu positionieren, indem Sie die Methode View.layout()
mit 4 Positionierungsparametern dort übergeben, aber in diesem Fall sollten Sie die Natur Ihres Layouts berücksichtigen, denn zum Beispiel, wenn Sie mit einem LinearLayout
arbeiten und die Position eines seiner Geschwister durch Aufrufen der Methode layout()
ändern, wird die nächste Änderung der Größe eines der UI-Elemente die Methode requestLayout()
aufrufen und Ihre animierte View
wird an ihre ursprüngliche Position zurückkehren.