Probleme beim Erstellen eines hochauflösenden großen Symbols für Android-Benachrichtigungen in Jelly Bean

11

Ich versuche, schöne hochauflösende Grafiken für Android-Benachrichtigungen zu erstellen, stoße jedoch auf einige Probleme. In Jelly Bean gibt es einen neuen Platz für große Symbole ( siehe die Richtlinien für das Benachrichtigungsdesign hier ) auf der linken Seite des Benachrichtigungsbanners (siehe unten # 2 Großes Symbol):

Geben Sie hier die Bildbeschreibung ein

Alle Standard-Android-Symbole sind wunderschön und hochauflösend, aber leider sehen die Symbole, die ich in Illustrator / Photoshop erstellt habe, auf dem hochauflösenden Display nicht so scharf aus.

Meine Dateien sind 96 x 96 Pixel groß, aber ich bin besorgt, dass dies nicht die richtige Größe für hochauflösende Symbole ist, und ich habe nirgendwo gute Informationen über die beste Größe für diese gefunden.

Jede Hilfe wird sehr geschätzt!

Daniel Smith
quelle

Antworten:

18

Android-Symbole (und andere Elemente der Benutzeroberfläche, z. B. Ziehlängen) werden in gemessen dp. A dpist ein geräte- / dichteunabhängiges Pixel . 1 dpentspricht 1 px auf einem 160-dpi-Bildschirm . Um jedoch in andere Bildschirmdichten zu konvertieren, müssen Sie diese mit einem Dichtefaktor multiplizieren. Daher wird allgemein empfohlen, für die meisten Symbole mehrere Bilder bereitzustellen .

Beispielsweise werden die in der Statusleiste verwendeten Benachrichtigungssymbole als 24 x 24 dp mit einem Rand von 1 dp angegeben (sodass das tatsächliche Symbol nur ein optisches Quadrat von 22 x 22 dp einnimmt, obwohl ein Teil des AA in diesen 1 dp-Rand / Safeframe übergehen kann ). Um 24 dp in tatsächliche Pixelgrößen umzuwandeln, werden diese groben Berechnungen verwendet:

display density  dp units * scale = px units
ldpi   ~120 dpi   24x24 dp * .75   = 18x18 px
mdpi   ~160 dpi   24x24 dp * 1.0   = 24x24 px
hdpi   ~240 dpi   24x24 dp * 1.5   = 36x36 px
xhdpi  ~320 dpi   24x24 dp * 2.0   = 48x48 px
xxhdpi ~480 dpi   24x24 dp * 3.0   = 72x72 px

Es gibt auch eine mittlere Anzeigedichte namens tvdpi(~ 213 dpi), die zwischen mdpiund liegt hdpiund einen Skalierungsfaktor von hat 1.33, aber dies ist viel seltener. In den Android-Dokumenten wird empfohlen, ein 3:4:6:8:12Skalierungsverhältnis einzuhalten, wenn Sie vorskalierte Bitmap-Bilder (normalerweise PNGs) für die gängigsten Anzeigedichten bereitstellen.

Ich sehe nirgendwo, wo sie die dp-Größe für die großen Symbole angeben, die in Benachrichtigungen verwendet werden, aber die Höhe jeder Benachrichtigung in der normalen Posteingangsansicht beträgt 64 dp . Das bedeutet, dass die maximale Größe für die dort gezeigten Symbole / Bilder wie folgt lautet:

ldpi:      48x48 px
mdpi:      64x64 px
hdpi:      96x96 px
xhdpi:   128x128 px
xxhpdi:  192x192 px

Wenn Sie genau wissen möchten, welche Bildgrößen die Stock-Symbole von Android haben, sollten Sie dies im Android Icon Templates Pack, v4.0, herausfinden können .

Siehe auch diese SO-Frage: Honeycomb-Benachrichtigungen: Wie stelle ich largeIcondie richtige Größe ein?

Lèse Majestät
quelle
3
Sie sollten einige der Design-Dokumentation von Android neu schreiben! Die Informationen sind alle da, werden aber nicht sehr effektiv komprimiert. Die Dokumente sind die meiste Zeit fantastisch, aber hier haben sie mich im Stich gelassen. Vielen Dank für die bisher klarste und prägnanteste Erklärung!
Daniel Smith