我已经将psd文件转换为svg,它在浏览器上运行良好但在android原生应用程序上无效,我该怎么做?
ImageView imageView = (ImageView)findViewById(R.id.img1);
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
//Parse the SVG file from the resource
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
//Get a drawable from the parsed SVG and apply to ImageView
imageView.setImageDrawable(svg.createPictureDrawable());
这是我用来显示svg图像的代码。当我使用简单的svg图像时,它工作,但它不能使用插图画家转换svg图像。我该怎么办?
答案 0 :(得分:0)
我猜你的SVG只包含来自PSD的图像。是这样的吗?
如果SVG包含的所有内容都是位图图像,那么您实际上并没有将SVG用于其正确的目的(矢量图)。将PSD转换为JPEG或PNG并将其加载到ImageView中会更好。
但是,如果您确定要加载SVG,那么解决方案取决于您使用的SVG库。
svg-android:据我所知,它不支持<image>
个元素,所以没有解决方案
AndroidSVG:支持<image>
,因此只要设备具有加载图像的内存,它就可以正常工作。如果图像嵌入在文件中,你应该没问题。如果它引用外部图像,则需要传入SVGExternalFileResolver,以便它知道如何查找位图。请参阅我对以下问题的回答:https://stackoverflow.com/a/21531168/1292848