Wie verwende ich die adaptiven Symbole von Android in Unity?

12

Ab API 26 verwendet Android so genannte adaptive Symbole.

Bei Ausrichtung auf API 25 und niedriger sieht das Symbol meiner App gut aus:

Bildbeschreibung hier eingeben

Bei der Ausrichtung auf API 26+ wird dies jedoch in einem weißen Kreis angezeigt:

Bildbeschreibung hier eingeben

  • Wie kann ich API 26+ ausrichten, während ich die adaptiven Symbole von Android verwende?
  • Was ist, wenn ich auf API 26+ abzielen möchte, aber nicht die adaptiven Symbole von Android verwende?
Evorlor
quelle
Sagen wir mal, ich habe bemerkt, dass Sie dieser Frage ein Kopfgeld hinzugefügt haben. Gibt es einige zusätzliche Informationen, von denen Sie hoffen, dass sie durch eine andere Antwort ergänzt werden können, die über Ihre nachstehenden ausführlichen Erklärungen hinausgeht?
DMGregory
@DMGregory Nope. Ich versuche nur, die Belichtung zu erhöhen. Ich habe nie eine anständige Erklärung für die Implementierung adaptiver Symbole in Unity gefunden, also habe ich versucht, Zeit für andere zu sparen. Abgesehen davon, wenn Sie oder jemand anderes zusätzliche Informationen hat, wäre es sehr dankbar.
Evorlor

Antworten:

22

Wie kann ich API 26+ ausrichten, während ich die adaptiven Symbole von Android verwende?

In Ihren Player-Einstellungen unter Android in Unity 2018 oder höher befindet sich im Abschnitt "Symbole" eine Stelle, an der Sie Ihre Symbole festlegen können. Sie können Legacy-, Round- und Adaptive-Symbole festlegen. Die Legacy- und Round-Symbole gelten für API 25 und niedriger. Fügen Sie einfach das gewünschte Symbol hinzu, Alpha und alles, und fertig. Die adaptiven Symbole für API 26+ sind etwas komplizierter.

Bildbeschreibung hier eingeben

Adaptive Icons bestehen aus zwei Teilen. Der Hintergrund und der Vordergrund .

Hintergrund

Im Hintergrund legen Sie den Hintergrund für Ihr Symbol fest. Dieses Bild darf kein Alpha enthalten. Sie sollte kontinuierlich sein, da Sie nicht steuern können, welche Teile des Hintergrunds angezeigt werden.

Android bestimmt das Zuschneiden und Übersetzen des Hintergrundbildes. Im folgenden Beispiel ist der Hintergrund ein blaues Bild mit einem weißen Gitter. Beachten Sie, dass der Hintergrund gut aussieht, obwohl das Quadrat in einen Kreis geschnitten und der Hintergrund verschoben wird.

Bildbeschreibung hier eingeben

Vordergrund

Der Vordergrund ist Ihr aktuelles Symbol. Alpha wird für dieses Bild benötigt. Das äußere 1/6 Ihres Bildes ist möglicherweise hinter dem Zuschneiden verborgen. Das heißt, das Bild muss auf 66,67% oder die Originalgröße verkleinert werden, während die Leinwand die volle Größe beibehält. Im folgenden Beispiel hat das Bild eine Größe von 432 x 432 Pixel. Links, rechts, oben und unten im Bild befinden sich jedoch jeweils 72 Pixel Transparenz.

Bildbeschreibung hier eingeben

Das Endergebnis von 66,67% Skalierung des Bildes füllt das Sprite perfekt innerhalb des Kreises aus, während der Hintergrund hinter transparenten Pixeln angezeigt wird.

Auf verschiedenen Geräten konnte das Symbol außerhalb des zugeschnittenen Bereichs verschoben werden, da kein Puffer vorhanden war. Im blauen Symbol oben beträgt der Vordergrund beispielsweise ungefähr 35% der Originalgröße. Wenn es 66,67% der ursprünglichen Größe wäre, würde das Android-Gesicht aus der Sicht rutschen.

Beispiel

Wenn dies also unser Hintergrund und Vordergrund wäre, so dass der Inhalt unseres Vordergrunds 2/3 der Größe unseres Hintergrunds entspricht:

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

Dann ist dies die unbeschnittene Version unseres Icons:

Bildbeschreibung hier eingeben

Was wir aber tatsächlich auf dem Gerät sehen konnten (vorausgesetzt, Android macht im Moment nichts "Adaptives"), ist Folgendes:

Bildbeschreibung hier eingeben


Was ist, wenn ich auf API 26+ abzielen möchte, aber nicht die adaptiven Symbole von Android verwende?

Du kannst nicht.


Ich verstehe immer noch nicht.

Vielleicht kann Android oder Unity es besser erklären.

Evorlor
quelle