6

在我有的自定义视图中,我使用Canvas.drawBitmap,其源位图宽度超过2048px。当启用硬件加速时,这当然会引起问题,每次调用drawBitmap时,LogCat都会喷出“W/OpenGLRenderer(4968):位图太大而无法上传到纹理中”。为什么我不能强制我的一个视图在软件中渲染?

所以要解决这个问题,我试着在我的视图上调用setLayerType(View.LAYER_TYPE_SOFTWARE, null)。唯一的问题是它似乎没有帮助。当我尝试运行我的应用程序时,LogCat仍然会发出警告,并且没有任何事物会被绘制。

我不明白为什么会这样。 This article on the Android site明确规定:

您可以禁用硬件加速在运行时的个人观点用下面的代码:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

有什么我做错了吗?为什么Android不尊重setLayerType调用?


[万一它的问题:我在三星Galaxy Tab 10.1在执行我的测试运行的是Android 3.2的

+0

Check canvas.isHardwareAccelerated()。它可能与视图不同 – imort 2013-02-18 08:29:11

回答

0

首先尝试调整位图。使用createBitmap。

相关问题