Live Wallpaper

  • Antworten:1
Marcel S.
  • Forum-Beiträge: 120

11.01.2011, 14:42:04 via Website

Hallo alle zusammen.

Das hier ist mein erster Beitrag in diesem wunderbaren Forum und wie das so ist
beginnt mein Einstieg hier bei euch direkt mit der Bitte mir bei einem Problem beratend zur Seite
zu stehen :)

Ich beschäftige mich jetzt seit ein paar Tagen Hobby mäßig mit Android und Java.
Da ich einige C++ und .Net Kenntnisse mit bringe gestaltet sich der Einstieg in Java nach einiger Verwirrung nicht ganz so problematisch.

Nachdem ich einige Tutorials fand, habe ich ein kleines 2D Live Wallpaper programmiert, das ein paar animierte Inhalte darstellt, und "bedingt" auf Events reagiert.

Und da sind wir auch schon bei meinem Problem.
Soweit funktioniert alles tadellos aber ich glaube meine Herangehensweise ist vielleicht nicht ganz korrekt da mein Wallpaper fest fixiert ist und nicht mit dem Homescreen nach links oder rechts scrollen möchte.

Ich habe zu dem üblichen Grundgerüst eine weitere Klasse geschrieben die die possitionen der darzustellenden Sprites berechnet in ein Bitmap schreibt und dieses dann zurückliefert.
Das Bitmap rufe ich dann regelmäßig ab und zeichne es auf den Screen.

Allerdings komm ich einfach nicht drauf wie ich das Wallpaper dazu bringe Mit dem Homescreens hin und her zu scrollen.

Nun meine Frage:
Gibt es irgend eine Klasse die mir die Anzahl der Homescreens wieder gibt oder noch besser die Koordinaten des ersten Homescreens?

Ich hoffe ich konnte irgendwie rüberbringen was mein Problem ist.

Bin für jede Hilfe dankbar

Antworten
Marcel S.
  • Forum-Beiträge: 120

10.06.2011, 15:32:37 via Website

Du kannst in deiner Engine Klasse die Methode onOffsetsChanged dafür verwenden sie meldet sich immer dann wenn sich etwas am Homescreen tut :)
einfach den xOffset wert an deine Simulation übergeben und damit arbeiten.

xOffset ist ein float wert der von 0 bis 1 geht. dabei entspricht 0 dem ersten Homescreen ganz links und 1 dem ganz rechts.
Es ist egal wie viele Homescreens verwendet werden onOffsetsChanged liefert dir den passenden wert. Bei drei Homescreens z.B würde xOffset folgendes liefern.

Homescreen 1 : xOffset == 0;
Homescreen 2 : xOffset == 0.5;
Homescreen 3 : xOffset == 1;

Antworten