如何在Android中运行时将SVG(可缩放矢量图形)转换为位图?
请尽可能向我提供确切的代码块或确切的链接。我对Android应用程序开发很陌生。
答案 0 :(得分:8)
按照svg-android教程从SVG文件中获取PictureDrawable
。然后,您需要根据Bitmap
的大小创建PictureDrawable
并将其提供给Canvas
。当Canvas
现在从Picture
中绘制PictureDrawable
时,您需要的当前位图在运行时绘制(创建)。
PictureDrawable pictureDrawable = svg.createPictureDrawable();
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(), pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(pictureDrawable.getPicture());
currentBitmap = bitmap;
答案 1 :(得分:-1)
您是否尝试在原生Android应用中执行此操作?或者在Android浏览器中使用JavaScript?
如果你在后面的阵营中,你可以使用JavaScript来解析SVG并将结果渲染到HTML5画布元素(这是一个位图表面)。有两个库可以帮助您完成此任务:
使用这些库将SVG渲染到画布后,您可以进一步从画布中获取静态图像文件。 Refer to this Stack Overflow thread了解有关第二步的详细信息。