【发布时间】:2015-04-28 13:54:57
【问题描述】:
如何在 Android 运行时将 SVG(可缩放矢量图形)转换为位图?
如果可能,请向我提供确切的代码块或确切的链接。我对 Android 应用程序开发还很陌生。
【问题讨论】:
标签: android svg android-bitmap
如何在 Android 运行时将 SVG(可缩放矢量图形)转换为位图?
如果可能,请向我提供确切的代码块或确切的链接。我对 Android 应用程序开发还很陌生。
【问题讨论】:
标签: android svg android-bitmap
按照svg-android 教程从您的SVG 文件中获取PictureDrawable。然后您需要从PictureDrawable 的大小创建一个Bitmap,并将其提供给Canvas。当Canvas 现在从PictureDrawable 中绘制Picture 时,您需要的当前位图是在运行时绘制(创建)的。
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;
【讨论】:
您是否尝试在原生 Android 应用中执行此操作?还是在 Android 浏览器中使用 JavaScript?
如果你是后期阵营,你可以使用 JavaScript 解析 SVG 并将结果渲染到 HTML5 画布元素(这是一个位图表面)。有两个库可以帮助您做到这一点:
使用这些库将 SVG 渲染到画布后,您可以进一步从画布中获取静态图像文件。 Refer to this Stack Overflow thread 了解有关第二步的更多详细信息。
【讨论】: