将SVG用作Android中的图像视图资源

问题描述 投票:0回答:2

我在使用SVG文件和imageView的源文件时遇到麻烦。我正在用数千个SVG绘图构建一个应用程序。当我将它们保存在drawable文件夹中时,它可以工作,但是我不想最终得到一个巨大的APK。当我从服务器下载它们作为文件时,我无法将它们设置为“图像”视图的源(我尝试使用SVG进行与此类似的操作)

Bitmap temp = BitmapFactory.decodeFile("file path");
        centerImage.setImageBitmap(temp);

但带有SVG文件(另存为XML)。我到处都是Stackoverflow,但我看到的唯一解决方案是将其保存为资源,我希望避免。

android xml svg imageview
2个回答
0
投票

[遗憾的是,您没有简单的方法可以在Android上绘制SVG。我建议您将它们转换为AndroidVectorDrawable。您可以使用Android SVG to VectorDrawableVector Asset Studio中的一个接一个地批量执行此操作。


0
投票

您可以从输入流(可能在AsyncTask中获得SVG,并将其转换为Drawable:]

SVG svg = SVGParser.getSVGFromInputStream(inputStream);
Drawable drawable = svg.createPictureDrawable();
centerImage.setLayerType(View.LAYER_TYPE_SOFTWARE, null); //turnnig on software rendering
centerImage.setImageDrawable(drawable);

您也可以选择以XML形式打开软件渲染:

android:layerType="software"
© www.soinside.com 2019 - 2024. All rights reserved.