SVG文件在模拟器中运行正常,但在Real Device中出错?

时间:2013-09-09 13:03:04

标签: android svg

我在My Project中使用SVG文件来显示图像。它在模拟器中运行正常但在真实设备中出错。

错误如下:

E/AndroidRuntime(23215): java.lang.UnsupportedOperationException
E/AndroidRuntime(23215): at android.view.GLES20Canvas.drawPicture(GLES20Canvas.java:911)
E/AndroidRuntime(23215):at android.graphics.drawable.PictureDrawable.draw(PictureDrawable.java:73)

这背后的原因是什么?

编辑:解决方案

imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

将此行添加到您的代码中。

1 个答案:

答案 0 :(得分:0)

我没有使用ImageViews,而是将SVG放在图片中。我将Picture放在一个自定义的PictureHolder类中,它给出了Picture x和y float值。然后我使用drawPicture()将Picture放在画布上。我无法让imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);解决方案起作用。使用相同的逻辑,我关闭了AndroidManifest中整个应用程序的硬件加速。

<application
    android:hardwareAccelerated="false"

不理想,但它对我有用,没有明显的性能损失。