Ich versuche in meiner Anwendung einen Parallaxeffekt zu erzielen.
Ich habe eine FragmentActivity
, die die OnPageChangeListener
-Schnittstelle implementiert und auf meine ViewPager
scrollenden Ereignisse hört.
Um diesen Effekt in meinem XML zu erreichen, habe ich ein LinearLayout
hinter allen anderen Ansichten mit meinem Hintergrund und ich verschiebe es in den onPageScrolled
Callback.
Wenn ich einfach wische, ist alles in Ordnung, der Effekt funktioniert und die Hintergrundposition ändert sich. Aber wenn mein Finger den Bildschirm verlässt, wird der Hintergrund an seiner ursprünglichen Position neu gezeichnet (auch wenn ich auf einer neuen Seite bin).
Ich kann nicht verstehen, warum das passiert.
Hier der Code meiner FragmentActivity
:
Danke.
Ich weiß, dass es ein bisschen alt ist, aber sieh dir das Ссылка
anEs überschreibt nicht die onDraw-Methode, und der Effekt nicht nur mit Bildern, es funktioniert mit jeder Art von Ansicht
%Vor%R.id.paraallaxContent ist die ID der Ansicht, die diesen Effekt haben soll
es sei denn, die anderen Lösungen benötigen keine konkrete Struktur und sind auch layout-unabhängig
demo: youtube
Diese Bibliothek ist vollständig in x- und y-Richtung anpassbar und enthält Alpha-Effekte:
Installation (ab Version 0.7, README auf Updates prüfen):
Als Maven Central-Abhängigkeit mit Gradle hinzufügen
Verwenden Sie die benutzerdefinierte ParallaxContainer
in Layout-XML anstelle von ViewPager
Erstellen Sie eine Layout-XML-Datei für jede Seite (die x / y / alpha-Attribute können für jedes Objekt separat festgelegt werden, das sich auf der Seite bewegt)
Es gibt einige Copy / Paste-Zeilen, die Sie zu onCreate
Ihrer Aktivität hinzufügen können (gehen Sie zur README für die genauen Zeilen)
Sieh dir diese kleine Bibliothek an, die ich erstellt habe - es ist eine ViewPager-Unterklasse, die keine zusätzliche Konfiguration für den Parallax-Effekt benötigt arbeiten.
Tags und Links android parallax android-viewpager