为什么我不能强制我的一个视图在软件中渲染?

时间:2012-04-12 22:21:46

标签: android android-4.0-ice-cream-sandwich android-custom-view hardware-acceleration

在我的自定义视图中,我使用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调用?


[如果重要:我正在运行Android 3.2的三星Galaxy Tab 10.1上进行测试]

1 个答案:

答案 0 :(得分:0)

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