6

在我拥有的自定义视图中,我将 Canvas.drawBitmap 与大于 2048 像素的源位图一起使用。当启用硬件加速时,这当然会导致问题,每次调用 drawBitmap 时,LogCat 都会显示“W/OpenGLRenderer(4968):位图太大而无法上传到纹理中”。

所以为了解决这个问题,我尝试调用setLayerType(View.LAYER_TYPE_SOFTWARE, null)我的观点。唯一的问题是它似乎没有帮助。当我尝试运行我的应用程序时,LogCat 仍然会发出警告,并且最终不会绘制任何内容。

我不明白为什么会这样。Android网站上的这篇文章明确指出:

您可以使用以下代码在运行时为单个视图禁用硬件加速:

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

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


[以防万一:我正在运行 Android 3.2 的三星 Galaxy Tab 10.1 上进行测试]

4

1 回答 1

0

首先尝试调整位图的大小。使用创建位图。

于 2012-08-07T15:38:07.543 回答