我在使用SVG文件和imageView的源文件时遇到麻烦。我正在用数千个SVG绘图构建一个应用程序。当我将它们保存在drawable文件夹中时,它可以工作,但是我不想最终得到一个巨大的APK。当我从服务器下载它们作为文件时,我无法将它们设置为“图像”视图的源(我尝试使用SVG进行与此类似的操作)
Bitmap temp = BitmapFactory.decodeFile("file path");
centerImage.setImageBitmap(temp);
但带有SVG文件(另存为XML)。我到处都是Stackoverflow,但我看到的唯一解决方案是将其保存为资源,我希望避免。
[遗憾的是,您没有简单的方法可以在Android上绘制SVG。我建议您将它们转换为AndroidVectorDrawable。您可以使用Android SVG to VectorDrawable或Vector Asset Studio中的一个接一个地批量执行此操作。
您可以从输入流(可能在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"