In dieser Reihe schneller Tipps haben wir uns einige der anstehenden Änderungen an der Benutzeroberfläche angesehen, mit denen Sie heute über die Android O Developer Preview arbeiten können.
In diesem letzten Beitrag der Serie werden wir untersuchen, wie Sie Startsymbole erstellen können, die sich perfekt in die breitere Benutzeroberfläche des Geräts integrieren lassen, und wie Sie Verknüpfungen erstellen, mit denen Benutzer direkt zu den wichtigsten Aktionen Ihrer App springen können ihr Homescreen.
Mit der Veröffentlichung von Android O haben Original Equipment Manufacturers (OEM) wie HTC und Samsung die Möglichkeit, eine Maske bereitzustellen, die das System auf alle Application Launcher-Symbole anwenden wird. Masken stellen sicher, dass alle Symbole, die auf diesem Gerät angezeigt werden, die gleiche Form haben: Wenn der OEM eine kreisförmige Maske bereitstellt, sind alle Symbole für den Anwendungsstarter kreisförmig, und wenn sie eine abgerundete quadratische Maske (oder "Squirkel") enthält, dann alle Die Icons haben abgerundete Ecken.
Diese anpassungsfähigen Symbole sollen dem Launcher des Geräts und in anderen Bereichen, in denen Launcher-Symbole eine herausragende Rolle spielen, wie z. B. den Ihres Geräts, ein einheitlicheres Erscheinungsbild verleihen die Einstellungen und Dialoge teilen.
Um sicherzustellen, dass Ihre Startersymbole unabhängig von der verwendeten Maske korrekt angezeigt werden, müssen Sie einige Anpassungen vornehmen.
Bevor Sie beginnen, überprüfen Sie, ob Ihr Manifest vorhanden ist android: icon
Das Attribut zeigt auf das Bild, das Sie als Startsymbol verwenden möchten:
Jedes adaptive Symbol besteht aus einer Hintergrundebene, einer Vordergrundebene und einer Maske. Letzteres wird vom OEM bereitgestellt, aber Sie müssen die Hintergrund- und Vordergrundebenen bereitstellen. Für beste Ergebnisse sollten diese Ebenen PNGs ohne Masken oder Hintergrundschatten sein. Beide Ebenen müssen eine Auflösung von 108 x 108 dpi haben. Die innere Auflösung von 72 x 72 dpi ist jedoch der Inhalt, der innerhalb des maskierten Ansichtsfensters angezeigt wird, da das System die äußeren 36 dpi um das Symbol herum für visuelle Effekte reserviert, z.
Erstellen Sie Ihre Hintergrund- und Vordergrundebenen und fügen Sie sie Ihrem Projekt hinzu. Als nächstes erstellen Sie eine res / mipmap-anydpi / ic_launcher.xml Datei und verwenden Sie es, um auf die beiden Zeichenobjekte zu verweisen, die Sie als Hintergrund- und Vordergrundebene verwenden möchten, zum Beispiel:
http://schemas.android.com/apk/res/android ">
Je nach Design Ihres Symbols können kreisförmige Masken wichtige Inhalte abschneiden. Wenn Sie vermuten, dass kreisförmige Masken ein Problem für Ihr Symbol darstellen können, können Sie ein spezielles kreisförmiges Symbol erstellen, das vom System verwendet wird, wenn eine kreisförmige Maske angewendet wird.
Erstellen Sie dieses kreisförmige Symbol, fügen Sie es Ihrem Projekt hinzu und referenzieren Sie diese Version Ihres Symbols im Manifest Ihres Projekts mithilfe von android: roundIcon
Attribut.
Bei einigen Geräten, auf denen Android ausgeführt wird, können Benutzer Anwendungsverknüpfungen an ihren Launcher anheften. Diese Verknüpfungen werden als separate Symbole angezeigt, die der Benutzer durch Antippen startet, und zwar genau so, wie sie mit regulären Symbolen für das Anwendungsstartprogramm interagieren.
Jede Anwendungsverknüpfung verweist auf einen oder mehrere Intents, die jeweils eine bestimmte Aktion in Ihrer App starten. Dies macht Pin-Verknüpfungen zu einer großartigen Möglichkeit, um Benutzern die Möglichkeit zu geben, direkt über den Startbildschirm zu den wichtigsten Aufgaben und Inhalten Ihrer App zu gelangen. Sie können beispielsweise eine Verknüpfung erstellen, mit der der Benutzer zum neuesten Speicherpunkt in Ihrer Spiele-App oder zum am häufigsten verwendeten Kontakt gelangt.
Die Anzahl der festgehaltenen Verknüpfungen, die Sie anbieten können, ist unbegrenzt. Um sicherzustellen, dass Ihre App den Launcher des Benutzers nicht übernimmt, wird empfohlen, dass Sie nur vier Verknüpfungen gleichzeitig anbieten.
Um eine oder mehrere angeheftete Verknüpfungen anbieten zu können, müssen Sie zunächst eine Instanz von erstellen ShortcutManager
:
ShortcutManager myShortcutManager = context.getSystemService (ShortcutManager.class);
Überprüfen Sie dann, ob das Gerät des Benutzers tatsächlich Verknüpfungen mit Pinn unterstützt:
if (mShortcutManager.isRequestPinShortcutSupported ())
Das kehrt zurück WAHR
Wenn das Standard-Startprogramm unterstützt requestPinShortcut
.
Vorausgesetzt, dass das Gerät In-App-Verknüpfungen unterstützt, können Sie eine erstellen ShortcutInfo
Objekt, das eine ID, eine Absicht und eine Bezeichnung für diese bestimmte Verknüpfung enthält.
ShortcutInfo pinShortcutInfo = ShortcutInfo.Builder (Kontext, "Mein-Shortcut"); .setShortLabel (getString (R.string.shortcut_label)) .setLongLabel (getString (R.string.shortcut_long_label)) .setIcon (Icon.createWithResource (Kontext, R.mipmap.ic_launcher)) .setIntent (Intent.ACTION_Client). Uri.parse ("https://www.google.com"))) .build ();
Zum Schluss fixieren Sie die Verknüpfung durch Aufrufen requestPinShortcut ()
.Das Standard-Startprogramm empfängt diese Anforderung und fordert den Benutzer auf, den Pinning-Vorgang zu genehmigen oder abzulehnen. Wenn Ihre App wissen muss, ob der Pinning-Vorgang erfolgreich war, können Sie an dieser Stelle auch eine PendingIntent
Objekt.
// Hier gehen wir davon aus, dass unser Projekt bereits eine createShortcutResultIntent () - Methode enthält, die die Broadcast-Intention zurückgibt. // Intent pinnedShortcutCallbackIntent = createShortcutResultIntent (pinShortcutInfo); PendingIntent successCallback = PendingIntent.createBroadcast (context, 0, pinnedShortcutCallbackIntent); mShortcutManager.requestPinShortcut (pinShortcutInfo, successCallback.getIntentSender ());
Diese PendingIntent
wird nur eine senden resultIntent
Wenn der Pinning-Vorgang erfolgreich ist. Ihre App erhält keine Benachrichtigung, wenn der Vorgang fehlschlägt.
Nachdem die PIN erstellt wurde, können Sie ihren Inhalt mithilfe von aktualisieren updateShortcuts ()
Methode. Seien Sie sich jedoch bewusst, dass gepinnte Inhalte oder Aktionen normalerweise eine Haltbarkeit haben. In unserem Spielebeispiel kann der Benutzer das Ende des Spiels erreichen oder seine Sicherungsdatei löschen. Zu diesem Zeitpunkt enthält die angeheftete Verknüpfung keine Inhalte.
Es ist zwar verlockend, eine festgelegte Verknüpfung durch Verändern des ursprünglichen Verwendungszwecks zu recyceln, ist jedoch für den Benutzer weit weniger verwirrend, wenn Sie Verknüpfungen deaktivieren, die nicht mehr relevant sind. Wenn eine angeheftete Verknüpfung das Ende ihrer Lebensdauer erreicht, können Sie sie durch Aufruf deaktivieren disableShortcuts ()
.
In dieser Serie haben wir uns einige Updates der Android O-Benutzeroberfläche angesehen, mit denen Sie heute experimentieren können, indem Sie die erste Developer Preview installieren. In Teil 1 habe ich Ihnen gezeigt, wie Sie Text erstellen, der auf der Grundlage der aktuellen Bildschirmkonfiguration automatisch skaliert. Im zweiten Teil haben wir uns mit dem Hinzufügen von benutzerdefinierten Schriftarten zu Ihren Android-Projekten befasst. In diesem letzten Beitrag der Serie haben wir uns mit adaptiven Symbolen und Verknüpfungen befasst.
Während Sie hier sind, lesen Sie einige unserer anderen Beiträge zur Android-App-Entwicklung!