SVG图像不使用标准代码显示

时间:2014-10-15 17:54:54

标签: android svg

我正在使用https://code.google.com/p/svg-android/wiki/Tutorial库示例中所述的标准代码,这是我的OnCreate方法:

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        ImageView imageView =  (ImageView)findViewById(R.id.imageViewTest);
        // Set the background color to white
        imageView.setBackgroundColor(Color.GRAY);
        // Parse the SVG file from the resource
        SVG svg = SVGParser.getSVGFromResource(getResources(), R.drawable.android);

        //Get a drawable from the parsed SVG and set it as the drawable for the ImageView
        imageView.setImageDrawable(svg.createPictureDrawable());
    }

我无法在此处添加布局代码,因此请在此文档中分享:https://docs.google.com/document/d/1fbi3B_hAYUh_C2IwPfInvZ-BG2bgsa4pZoJKj8NBT9o/edit?usp=sharing

它不会出现任何错误,但也不会显示图像。

我之前怀疑图像是不正确的,然后我在同一个例子中使用了那个。

然而,它没有显示图像,也没有出现任何错误。

请建议如何进一步调试。

2 个答案:

答案 0 :(得分:0)

Android上SVG的最佳做法是使用工具将您的SVG转换为您感兴趣的大小的PNG。现有的Android支持SVG并不全面。 39;很可能在SVG文件中找到,即使它是,但是操作系统没有内置支持,因此直接使用它们是不合时宜的。

如果您正在使用的库可以处理您已经很好的SVG,那么您可以使其适用于每个图标,但不能通过标准Android API;您需要创建自定义视图。大约几个月前,我使用了你链接的库,当时它在我在Inkscape中创建或从各个地方下载的许多SVG都遇到了麻烦。也许从那时起它的支持有所改进,但我建议你在为它编写大量自定义代码之前使用你计划使用的精确SVG进行测试。

答案 1 :(得分:0)

您的问题几乎可以肯定是硬件加速。您可能需要将View LayerType设置为软件模式。

请参阅Having issue on Real Device using vector image in android. SVG-android

如果这不能解决问题,那么它可能是svg-android的一个问题,除了简单的SVG之外,它可能无法正确渲染任何东西。你的我的图书馆AndroidSVG可能会更好运。