SVG图像不显示

时间:2014-02-25 11:14:22

标签: android svg

我已经将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图像。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我猜你的SVG只包含来自PSD的图像。是这样的吗?

如果SVG包含的所有内容都是位图图像,那么您实际上并没有将SVG用于其正确的目的(矢量图)。将PSD转换为JPEG或PNG并将其加载到ImageView中会更好。

但是,如果您确定要加载SVG,那么解决方案取决于您使用的SVG库。

  1. svg-android:据我所知,它不支持<image>个元素,所以没有解决方案

  2. AndroidSVG:支持<image>,因此只要设备具有加载图像的内存,它就可以正常工作。如果图像嵌入在文件中,你应该没问题。如果它引用外部图像,则需要传入SVGExternalFileResolver,以便它知道如何查找位图。请参阅我对以下问题的回答:https://stackoverflow.com/a/21531168/1292848