I SVG will von Gridview-Adapter in Image laden, ich das tun:Hinzufügen von SVG-Bilder von Vermögenswerten Ordnern im Adapter
imageView.setImageURI(Uri.parse("file:///android_asset/ico/s.svg"));
aber nicht und zeigen nicht alles
I SVG will von Gridview-Adapter in Image laden, ich das tun:Hinzufügen von SVG-Bilder von Vermögenswerten Ordnern im Adapter
imageView.setImageURI(Uri.parse("file:///android_asset/ico/s.svg"));
aber nicht und zeigen nicht alles
Ich mag Laden SVG in ImageView von Gridview Adapter, ich tun dies:
Erstens, ImageView
unterstützt nicht direkt SVG.
Zweitens scheint Ihr Code eine PNG-Datei, nicht eine SVG-Datei zu laden.
Dritte, file:///android_asset/
ist für WebView
. Es funktioniert nicht anderswo im Android SDK.
Sie sollten in Erwägung ziehen, Glide als Image-Loader zu verwenden. Es behandelt file:///android_asset/
und verfügt über Beispielcode zum Transkodieren von SVG-Dateien. Außerdem wird das Laden von Bildern in einem Hintergrund-Thread durchgeführt.
Andernfalls können Sie AssetManager
und seine open()
Methode verwenden, um eine InputStream
auf einen Vermögenswert zu erhalten. Wenn dieses Asset eine PNG-, JPEG- oder WebP-Datei ist, können Sie BitmapFactory.decodeStream()
verwenden, um den Stream einzulesen und Ihnen eine Bitmap
zurückgeben, die Sie für die ImageView
verwenden können. Sie benötigen eine Bibliothek eines Drittanbieters, um etwas mit einem SVG-Asset zu tun. Und Sie müssen dafür sorgen, dass diese Arbeit in einem Hintergrundthread ausgeführt wird, da andernfalls Ihre Benutzeroberfläche einfriert und die Benutzer denken, dass Ihre App blockiert ist.
wenn ich mein SVG in Android XML umwandle? –
@ ArMo372: Ich bin mir nicht sicher, was Sie damit meinen. Wenn Sie meinen, den Vektor-Asset-Assistenten in Android Studio zu verwenden, um Vektor-Zeichen-XML zu erstellen, habe ich nie versucht, das von einem Asset zu laden. Es funktioniert sicherlich als "zeichnende" Ressource. – CommonsWare