如何捕获错误'Bitmap too large to be uploaded into a texture'



我的android应用程序处理非常大的位图。因此,我关闭了图像视图的硬件加速功能。然而,一些用户已将开发人员选项"强制GPU加速"设置为打开状态。这会导致错误"位图太大,无法上载到纹理中"。如果我使用isHardwareAccelerated()检查视图,它总是返回false。

有没有办法捕捉OpenGL错误"位图太大,无法上传到纹理中"?

位图由像素组成,您可以计算位图矩阵中的像素数,设置位图像素数的限制。在OpenGl中,我不能说,但通常我们可以很容易地处理它们,还有一种方法
bitmap.inSampleSize();

如果您指定

Bitmap.inSampleSize()= 1;

则将加载原始位图像素。

Bitmap.inSampleSize()= 2;

则像素将变为原始像素的一半。

Bitmap.inSampleSize() = 4

则像素将变为原始像素的1/4。通过这种方式,您可以减小位图中像素的大小,我已经在我的程序中做了这件事,希望它也能和你一起工作。

我没有在Android上使用OpenGL,因此不知道是否有什么特别的事情需要做才能捕捉到未捕获的异常或错误。您可以尝试注册一个全局异常处理程序,并检查是否能够在那里捕获OpenGL错误。

相关内容

最新更新