Erstellen von Live-Wallpaper auf Android

Android hat eine Reihe von Funktionen zur Personalisierung Anwender viele Aspekte ihres Gerätebenutzer Erfahrung anpassen zu helfen. Eines dieser Merkmale ist Live-Wallpaper. Live-Hintergründe bleiben nicht als statische Hintergrundbilder, sondern interaktive Features. Erfahren Sie, wie ein Live-Wallpaper in diesem Tutorial erstellen!






Ein Live-Wallpaper, auf Android, ist in der Regel als Hintergrund auf dem Home-Bildschirm verwendet werden, die in irgendeine Weise im Laufe der Zeit beseelt oder Änderungen. Wenn Sie ein Android-Gerät haben, haben Sie wahrscheinlich ein paar der Einbau-Live-Wallpaper zu sehen, wie die, wo Blätter in Plätschern des Wassers zu fallen scheinen.

Als Entwickler können Sie Live-Hintergrundbilder erstellen und veröffentlichen. Der Prozess ist nicht besonders schwierig. ein Live-Wallpaper zu machen, die faszinierenden und wünschenswert ist, während nicht die Gerätebatterie des Benutzers Trockenlegung ist jedoch eine gewisse Herausforderung. In diesem Tutorial werden wir Sie durch den Prozess des zu Fuß ein Live-Wallpaper erstellen, verhält. )

Schritt 0: Erste Schritte

Vor kurzem haben wir Ihnen gezeigt, wie render verwenden. Das Endergebnis dieses Tutorial war eine einfache schneefallende Wirkung. Lassen Sie uns diesen Effekt in eine Live-Tapete drehen.

Der Open-Source-Code für dieses Tutorial steht zum Download zur Verfügung. Wir empfehlen es mit folgen. Die Codebeispiele in diesem Tutorial enthält nicht den gesamten Inhalt jeder Datei und Projekt-Setup oder Code nicht in vorherigen Tutorials überdecken.

Schritt 1: Service oder Motor?

Man könnte sagen, dass eine Live-Tapete ist nur eine Dienstleistung. Immerhin ein Live-Wallpaper zu erstellen, erweitern Sie einfach aus der WallpaperService Klasse und eine Methode implementieren, oft mit nur einer einzigen Codezeile, und dann Service-Definition auf die Manifest-Datei hinzufügen.

Mal sehen, wie das aussieht. Hier ist die WallpaperService:

Und nun die Realität der Live-Wallpaper wird enthüllt: Bei der WallpaperService.Engine Umsetzung alles, was Sie tun, auf einen dargebotenen Oberfläche zeichnet (über eine SurfaceHolder). Es ist fast so einfach. Bevor wir zur Umsetzung des WallpaperService.Engine bekommen, lassen Sie uns einige der anderen Konfigurationsaspekte betrachten.

Schritt 2: Definieren der Tapete

Da ein Live Wallpaper ist ein Dienst, müssen Sie den Dienst in Ihrer Manifest-Datei registrieren. Die Service-Registrierung könnte wie folgt aussehen:

Es gibt ein paar Dinge zu beachten. Zuerst mit diesem Service erfordert die BIND_WALLPAPER Genehmigung (das heißt eine andere App Hintergrundbilder verwenden würde die BIND_WALLPAPER Erlaubnis als Uses-Berechtigungseintrag in ihrem Manifest verlangt). Zweitens ist der Intent-Filter ist eine Zeichenfolge ähnlich die Basisklasse. Schließlich weist die Meta-Daten in eine XML-Datei. Diese XML-Datei, durch den Entwickler definiert, bietet einige zusätzliche Tapete Konfiguration. Hier ist unsere XML-Datei für die Live-Wallpaper-Einstellungen genannt fallingsnow_wp:







Hier verwenden wir einfach das regelmäßige Launcher-Symbol als Thumbnail und deutet auf eine Zeichenfolge, die als die Beschreibung in der Auflistung von Tapeten zeigen werden. Wenn Ihre Live-Wallpaper-Konfiguration benötigt, dann würden Sie mit dem Android darauf zeigen: settingsActivity Eigenschaft.

Schließlich zurück in Ihrer Manifest-Datei, nicht zu vergessen die uses-Funktion für android.software.live_wallpaper einzustellen:

Schritt 3: Tapeten Service Engine Wiring

Nun, da die langweiligen, aber kritisch, Sachen aus dem Weg sind, lassen Sie sich auf die eigentliche Arbeit zurück: die WallpaperService.Engine Klasse zu schaffen. Da wir bereits eine Datei für render dabei einige Animation haben, alles, was wir tun müssen, ist die Wiedergabe auf die neue Oberfläche zu verbinden. Die onSurfaceCreated () -Methode des Motors ist ein großartiger Ort, um das RenderScriptGL Objekt zu erstellen, wir brauchen:

Wir setzen auch die Rendering-Priorität zu niedrig - das ist eine Live-Tapete ist und kein kritisches Spiel oder UI-Rendering-Engine. Es sollte nicht langsam alles andere auf dem System herunter.

Reinigen Sie diese nach oben in der onSurfaceDestroyed () -Methode:

Die onSurfaceChanged () -Methode ist ein großartiger Ort, um die Klasse render zu initialisieren. Dies ist der erste Ort, an dem Sie herausfinden, Details von dem, was Sie machen, um, wie die Breite und Höhe werden werden. Dies ist auch dann, wenn wir die Oberfläche für die RenderScriptGL Klasse.

Es ist eine gute Idee, die Tapete zu stoppen, wenn es nicht sichtbar ist.

Und das ist es. Die Live-Tapetenrollen. Oder beseelt. Oder tut, was es ist, dass Sie es tun wollen.

Möchten Sie Taps reagieren? Überschreiben der onCommand () Methode der WallpaperService.Engine Klasse.

Möchten Sie Positionen einzustellen, wenn der Benutzer-Home-Bildschirmseiten klaut zwischen? Überschreiben der onOffsetsChanged () Methode der WallpaperService.Engine Klasse.

wissen wollen, ob der Benutzer die Vorschau ansieht vor der Einstellung der Tapete? Rufen Sie den isPreview () -Methode der WallpaperService.Engine Klasse und die Ergebnisse überprüfen.

Die vollständige Umsetzung unserer WallpaperService.Engine Klasse kann in FallSnowWallpaperService.java des Open-Source-Projekt.

Schauen wir uns die Live Wallpaper einen Blick:

Das sollte Ihnen bekannt vorkommen; es ist das gleiche, was wir in der render Aktivität gesehen.

Schritt 4: Einige Hinweise auf die Leistung

Schritt 5: Die Demo anzeigen

Die Demo-Ansicht und Aktivität (aus dem vorherigen Tutorial) ist noch verfügbar, wenn die Anwendung gestartet wird. Statt es zu entfernen, warum nicht nur einen Handler hinzufügen, so dass, wenn ein Benutzer darauf klickt, wird die Live-Wallpaper-Einstellungen werden kommen, so kann der Benutzer die Live-Tapete wählen?

Warum nicht, in der Tat! Das war einfach. Auf jeder klickbare Ansicht, fügen Sie einfach den android: Immobilien und Sie sind gut zu gehen.

Hier ist ein Standbild:

Erstellen von Live-Wallpaper auf Android

Schlussfolgerung

Live-Wallpaper sind eine bequeme Möglichkeit, Ihre Anwendung über seine typischen Grenzen zu erweitern. Haben Sie ein Rollenspiel? Machen Sie einige nette Live-Wallpaper die wichtigsten Figuren. So stellen Sie sicher, dass Sie den gesunden Menschenverstand, wenn auf dem Bildschirm zu machen, so dass die Erfahrung des Benutzers mit ihrem Gerät nicht leidet.

Über die Autoren

Benötigen Sie weitere Hilfe Schreiben Android? Sehen Sie sich unsere neuesten Bücher und Ressourcen!







In Verbindung stehende Artikel