5

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

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

4

2 回答 2

9

按照svg-androidPictureDrawable教程从 SVG 文件中获取一个。然后您需要Bitmap从 的大小创建 aPictureDrawable并将其提供给 a Canvas。当Canvasnow 从 中绘制 aPicturePictureDrawable,您需要的当前位图是在运行时绘制(创建)的。

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;
于 2013-02-10T02:37:09.510 回答
-1

您是否尝试在本机 Android 应用程序中执行此操作?还是在 Android 浏览器中使用 JavaScript?

如果你在后阵营,你可以使用 JavaScript 解析 SVG 并将结果渲染到 HTML5 画布元素(这是一个位图表面)。有两个库可以帮助您做到这一点:

使用这些库将 SVG 渲染到画布后,您可以进一步从画布中获取静态图像文件。有关第二步的更多详细信息,请参阅此 Stack Overflow 线程。

于 2012-02-17T18:16:40.667 回答