Was ist der einfachste Weg, SVG-Bilder in Android zu verwenden?

Lesezeit: 4 Minuten

Benutzer-Avatar
CommonSenseCode

Ich habe unzählige Bibliotheken gefunden, um SVG-Bilder in Android zu verwenden und die frustrierende Erstellung unterschiedlicher Auflösungen und das Löschen von Dateien für jede Auflösung zu vermeiden. Dies wird sehr ärgerlich, wenn die App viele Symbole oder Bilder hat.

Was wäre ein Schritt-für-Schritt-Prozess der am einfachsten zu verwendenden Bibliothek zur Verwendung von SVG-Bildern in Android?

Auch ich benutze Android Studio und Illustrator zum Generieren meiner Icons und Bilder.

  • Mögliches Duplikat von Was sind Best Practices für die Verwendung von SVG-Symbolen auf Android?

    – serv-inc

    11. Mai 2017 um 7:14 Uhr

  • Kurzes Video zum Importieren von SVG in Android Studio: youtube.com/watch?v=8e3I-PYJNHg

    – Zohab Ali

    7. Oktober 2018 um 6:01 Uhr


Benutzer-Avatar
Sandeep Parek

Versuche dies:

Geben Sie hier die Bildbeschreibung ein

Der nächste Schritt:

Geben Sie hier die Bildbeschreibung ein

Bearbeiten Sie nun den Bild- oder Symbolnamen und speichern Sie ihn:

Geben Sie hier die Bildbeschreibung ein

  • Schritt für Schritt gefällt es mir, rette mein Leben!

    – Chris Ho

    24. Februar um 1:21

  • Das fehlt total. Welche Anwendung ist das? Android-Studio? In welchem ​​Kontext und wie ist “Vektor-Asset” aufgerufen wird (hinzufügen? – zu was hinzufügen?)? Ein Kontextmenü? Wo und was? Warum ist “Vektor-Asset” aufgerufen? Was ist die Idee? Was ist die allgemeine Idee? SVG-Dateien in Android Studio importieren? Etwas anderes? Bitte antworten Sie, indem Sie Ihre Antwort bearbeiten (ändern), nicht hier in den Kommentaren (ohne “Bearbeiten:”, “Aktualisieren:” oder ähnliches – die Antwort sollte so aussehen, als wäre sie heute geschrieben).

    – Peter Mortensen

    27. April um 0:53


  • Wenn ich versuche, SVG-Dateien hinzuzufügen, erhalte ich die Fehlermeldung „Fehler: Der Dateiname muss mit .xml oder .png enden“.

    – Sujay UN

    12. August 2017 um 16:41 Uhr

  • Warum ist imageView static? Ich sehe hier eine riesige rote Käferfahne. SvgImage rainSVG = new SvgImage(MainActivity.this, R.id.rainImageView, R.drawable.rain); SvgImage thunderSVG = new SvgImage(MainActivity.this, R.id.thunderImageView, R.drawable.thunder); rainSVG bezieht sich auf thunderImageView

    – DSmidt

    25. August 2017 um 12:13 Uhr


  • @DSchmidt das ist nur ein Zeiger auf die Bildansicht. Wenn es mein Code wäre, würde ich die ganze Klasse mit einer Methode namens LoadSVG statisch machen. und wie Sie sehen können, gibt es keinen Grund, Daten in private Variablen zu laden, auf die nicht zugegriffen werden kann.

    – Nasreddine Galfout

    30. Juni 2020 um 18:53 Uhr

Benutzer-Avatar
Aminul Haque Aome

Sie können die Coil-Bibliothek verwenden, um eine SVG-Datei zu laden. Fügen Sie einfach diese Zeilen in die Datei ein build.gradle:

// ... Coil (https://github.com/coil-kt/coil)
implementation("io.coil-kt:coil:0.12.0")
implementation("io.coil-kt:coil-svg:0.12.0")

Dann hinzufügen eine Erweiterungsfunktion:

fun AppCompatImageView.loadSvg(url: String) {
    val imageLoader = ImageLoader.Builder(this.context)
        .componentRegistry { add(SvgDecoder([email protected])) }
        .build()

    val request = ImageRequest.Builder(this.context)
        .crossfade(true)
        .crossfade(500)
        .data(url)
        .target(this)
        .build()

    imageLoader.enqueue(request)
}

Rufen Sie dann diese Methode in Ihrer Aktivität oder Ihrem Fragment auf:

your_image_view.loadSvg("your_file_name.svg")

Benutzer-Avatar
Peter Mortensen

Anstatt Bibliotheken hinzuzufügen, die Ihre erhöhen APK Dateigröße, schlage ich Ihnen vor, SVG mit zu zeichnen Android SVG zu VectorDrawable.

Und hinzufügen vectorDrawables.useSupportLibrary = true in Gradl.

Benutzer-Avatar
Peter Mortensen

1. Sie müssen SVG in XML konvertieren, um es in einem Android-Projekt zu verwenden.

1.1 Sie können dies mit tun Android SVG zu VectorDrawableaber es unterstützt nicht alle Funktionen von SVG, wie einige Farbverläufe.

1.2 Sie können über konvertieren Android-Studioaber es werden möglicherweise einige Funktionen verwendet, die nur API 24 und höher unterstützen, die Ihre App auf älteren Geräten zum Absturz bringen.

Und hinzufügen vectorDrawables.useSupportLibrary = true in dem Gradl Datei und verwenden Sie es wie folgt:

<android.support.v7.widget.AppCompatImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:srcCompat="@drawable/ic_item1" />

2. Verwenden Sie diese Bibliothek SVG-Android das unterstützt die Merkmale

Fügen Sie diesen Code in der Anwendungsklasse hinzu:

public void onCreate() {
    SVGLoader.load(this)
}

Und verwenden Sie das SVG wie folgt:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_android_red"/>

  • Warum einen SVG-Loader verwenden, wenn Sie den geradlinigen Ansatz von @Pallavi haben? Hat die Verwendung eines Loaders einen Vorteil?

    – Taslim Oseni

    29. November 2018 um 6:32 Uhr

  • @Taslim Die unterstützten Funktionen sind mehr als üblich. Sie können die unterstützten Funktionen sehen und sehen.

    – sajad abbasi

    29. November 2018 um 18:56 Uhr

1010660cookie-checkWas ist der einfachste Weg, SVG-Bilder in Android zu verwenden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy