我在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);
将此行添加到您的代码中。
答案 0 :(得分:0)
我没有使用ImageViews,而是将SVG放在图片中。我将Picture放在一个自定义的PictureHolder类中,它给出了Picture x和y float值。然后我使用drawPicture()将Picture放在画布上。我无法让imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
解决方案起作用。使用相同的逻辑,我关闭了AndroidManifest中整个应用程序的硬件加速。
<application
android:hardwareAccelerated="false"
不理想,但它对我有用,没有明显的性能损失。