Files
Constantin Leue e9a5b3ea0b Scale up the launcher icon's DC glyph to fill its safe zone
The foreground layer's white DC glyph only occupied 235x150 of the
432x432 canvas (81.6% width / 52.1% height of the 66dp safe zone),
noticeably smaller than the background layer's pink M shape, which
was deliberately sized per design/icon/README.md to fill that same
zone almost edge-to-edge (287x287, ~100%). Upscaled and recentered the
DC glyph to 288x184 (matching the M's full zone width, aspect ratio
preserved) so both layers read at a consistent size on the home
screen, then regenerated the mipmap drawables via
`dart run flutter_launcher_icons` and verified on the emulator after
a `flutter clean` + reinstall (per the README's cache-busting note).
2026-08-07 22:50:55 +02:00
..

DMC Launcher Icon – Adaptive Icon Layers

Warum vorher ein weisser Rand entstand

flutter_launcher_icons erzeugt ein Adaptive Icon nur, wenn adaptive_icon_background UND adaptive_icon_foreground gesetzt sind. Der image_path wird nicht automatisch als Vordergrund uebernommen.

Ohne Adaptive Icon faellt Android auf die Alt-Behandlung zurueck: Es verkleinert das quadratische Bild und legt es auf weissen Grund, damit es in die Maskenform passt. Genau das war der weisse Kreis.

Dateien

Datei Inhalt
ic_background.png Deckend #160E24 + M in der 66dp-Zone
ic_background_alt_A.png Alternative: M fuellt die sichtbaren 72dp
ic_foreground.png Transparent + weisses DC (Sicherheitszone)
ic_monochrome.png DC-Silhouette fuer Themed Icons

Alle 432x432 px (= 108dp bei xxxhdpi). SVG-Quellen liegen daneben.

Warum das M nicht mehr randfuellend ist

Die Maske zeigt nur die inneren 72 von 108 dp (288 von 432 px). Ein randfuellendes M verliert dadurch 72 px pro Seite. Gemessener Anteil des sichtbaren M:

Variante Kreis Squircle Eckig
randfuellend (urspruenglich) 31 % 36 % 40 %
A – M fuellt die 72dp 74 % 90 % 99 %
B – M in der 66dp-Zone 84 % 97 % 100 %

Ausgeliefert wird B, weil es in jeder Maskenform besser abschneidet als A. Wer das M naeher am Rand moechte, nimmt ic_background_alt_A.png.

Geprueft:

  • Hintergrund vollstaendig deckend
  • Vordergrund max. 127 px vom Zentrum -> passt in die 132 px Sicherheitszone
  • Aeusseres 18dp-Band enthaelt nur Hintergrundfarbe

pubspec.yaml

dev_dependencies:
  flutter_launcher_icons: ^0.14.4

flutter_launcher_icons:
  android: "launcher_icon"
  ios: true
  image_path: "assets/launcher/ic_playstore.png"

  adaptive_icon_background: "assets/launcher/ic_background.png"
  adaptive_icon_foreground: "assets/launcher/ic_foreground.png"
  adaptive_icon_monochrome: "assets/launcher/ic_monochrome.png"

Danach:

flutter clean
dart run flutter_launcher_icons

flutter clean nicht weglassen - alte Icons werden sonst oft aus dem Cache weiterverwendet.

Hinweise

  • image_path ist der Alt-/iOS-Pfad. Dafuer die eckige Vollversion nehmen (Y2_pink_dark_square), nicht die Ebenen.
  • Fuer den Play Store zusaetzlich 512x512 px, ohne Transparenz.
  • Das Benachrichtigungssymbol ist eine eigene Grafik: weiss auf transparent, in drawable/, nicht mipmap/.
  • Auf einem echten Geraet gegen mehrere Launcher pruefen (Samsung = Kreis, Pixel = Squircle).