Kann Android ein SVG direkt als Drawable verwenden?
Eine VectorDrawable-Ressource nutzt Androids eigenes XML-Vokabular: ein vector-Element mit einem Viewport, Anzeigemaßen und Zeichenpfaden. Wenn du logo.svg in logo.xml umbenennst, werden diese Elemente nicht übersetzt. SVG verwendet andere Namen für Füllungen, Konturen und Transformationen und unterstützt Funktionen, die dieser Exporter absichtlich ablehnt.
Nimm den Konverter von SVG zu Android für ein einfaches Oberflächen-Icon oder eine flache Illustration. Er nimmt dein hochgeladenes SVG oder eines deiner eigenen freigeschalteten Ergebnisse an. Startest du mit einer Bitmap, zeichne das Bild zuerst als Vektor nach, prüf die Umrisse und exportiere dann. Das Umwandeln in Ressourcen zeichnet nicht noch einmal nach und hebt bei einem bestehenden Ergebnis nicht die Pflicht zum Freischalten auf.
Ein kleines Beispiel zum Nachmachen
Speichere dieses Dreieck als triangle.svg und lade es hoch. Wähle den Ressourcennamen ic_triangle und eine längste Seite von 24 dp.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path fill="#fa643c" d="M12 2L22 22H2Z"/>
</svg>
Das heruntergeladene XML enthält einen Viewport von 24 × 24, Anzeigemaße von 24 dp und einen Pfad. Seine orange Füllung wird zu Androids Farbe mit vorangestelltem Alphawert, #fffa643c. Leg ic_triangle.xml in app/src/main/res/drawable/. In einem Layout verwendest du android:src="@drawable/ic_triangle", im App-Code die entsprechende Drawable-Ressourcen-ID.
Der Viewport beschreibt die Geometrie. Die Maße in dp beschreiben die vorgesehene Anzeigegröße des Drawables. Ein rechteckiges SVG behält sein Seitenverhältnis: Wählst du 48 dp für die längste Seite, wird es nicht zu einem Quadrat gestreckt. Der Ressourcenname beginnt mit einem Kleinbuchstaben und darf Kleinbuchstaben, Ziffern und Unterstriche enthalten.
Was die Umwandlung übersteht
Unser Konverter unterstützt Pfade und einfache geometrische Formen, Volltonfarben, Fülldeckkraft, kompatible Konturstile sowie die Füllregeln nonzero und even-odd. Unterstützte Transformationen rechnet er in die Pfadkoordinaten ein. Wegen der Füllregel even-odd ist dieser Export für API 24 und neuer gedacht. Für ältere Apps erstellt er keine Kompatibilitätshüllen.
Text, Verläufe, Masken, Beschneidungen, eingebettete Bilder und Effekte brauchen einen anderen Vorbereitungsschritt. Wandle Text in deinem Vektorprogramm in Pfade um. Wandle transformierte Konturen in Pfade um, wenn die Transformation ihre Achsen unterschiedlich skaliert. Gruppendeckkraft kann überlappende Formen verändern, deshalb lehnt der Exporter sie ab, statt die Deckkraft einzeln anzuwenden und das Bild zu verändern. Das Ergebnis listet alles Unsichere auf, was entfernt wurde.
Für detaillierte Grafik kann ein PNG-Export die passendere Ressource sein. Eine sehr große Anzahl an Pfaden kann Renderzeit kosten, auch wenn die Datei technisch ein Vektor ist. Entferne unnötige Punkte und teste in der tatsächlichen Größe auf dem Bildschirm.
Das Ergebnis in der App prüfen
Bau die Ressource in Android Studio und sieh sie dir vor hellen und dunklen Hintergründen an. Prüf Löcher in Buchstaben, dünne Linien, die gewünschten Farben und die Transparenz. Vergleich Original und Drawable in kleinen Größen, wo winzige Details am meisten auffallen. Wenn das XML fehlerfrei kompiliert, ist die Ressource angenommen; wie sie am Ende aussieht, bestimmen weiterhin das Rendering auf dem Gerät und die Tönungseinstellungen deiner App.
Für ein Launcher-Icon nimmst du den App-Icon-Generator. Launcher-Icons haben Anforderungen an Pixeldichten und adaptive Ebenen, die ein normaler Drawable-Export nicht abdeckt.