在Android中运行时转换的SVG到位图

时间:2011-08-26 07:47:48

标签: android svg android-bitmap

如何在Android中运行时将SVG(可缩放矢量图形)转换为位图?

请尽可能向我提供确切的代码块或确切的链接。我对Android应用程序开发很陌生。

2 个答案:

答案 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了解有关第二步的详细信息。