我正在 ICS 上开发并试图理解为什么 Canvas.isHardwareAccelerated() 在 SurfaceView 中使用 Canvas 时总是返回 FALSE。
我尝试了一个非常基本的示例,例如: http://android-coding.blogspot.com/2011/05/drawing-on-surfaceview.html 或者这个:http : //jmsliu.com/199/android-画布-example.html
我什至将它们修改为在绘图循环中没有任何画布调用,认为我可能在某些绘图调用中获得了一些不受支持的硬件加速操作。我在“不支持的绘图操作”developer.android.com/guide/topics/graphics/hardware-accel.html 下检查了这个列表,但我没有这样做。
我在开发人员选项和清单中使用了 Force GPU 渲染标志,我还指定了 minSDK/targetSDK >= 14。
View.isHardwareAccelerated 将返回 TRUE,而 Canvas.isHardwareAccelerated 将始终返回 FALSE。
我已经看到 Canvas.java 为 isHardwareAccelerated() 硬编码返回 false,而 HardwareCanvas.java 已返回 true。我想由于某些原因我没有得到硬件路径,为什么?
SurfaceView 中的 Canvas 可以硬件加速吗?
谢谢