如何捕获错误'位图太大而无法上传到纹理'

时间:2012-08-24 11:46:48

标签: java android bitmap

我的android应用程序处理非常大的位图。因此,我在图像视图中关闭了硬件加速功能。 但是,有些用户已将Developer-Option的“强制GPU加速”设置为开启状态。这会导致错误“位图太大而无法上传到纹理中”。 如果我使用isHardwareAccelerated()检查视图,它总是返回false。

有没有办法捕捉OpenGL-Error'Bitmap太大而不能上传到纹理'?

2 个答案:

答案 0 :(得分:2)

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

如果你指定

Bitmap.inSampleSize()= 1;

然后将加载原始位图像素。

Bitmap.inSampleSize()= 2;

然后像素将变为原始像素的一半。

Bitmap.inSampleSize() = 4

然后像素将变为原始像素的1/4。 这样可以减小位图中像素的大小, 我已经在我的程序中做了这件事,希望它也能和你合作。

答案 1 :(得分:0)

我没有在Android上使用OpenGL,因此不知道是否有任何特殊的事情可以捕捉未捕获的异常或错误。您可以尝试register一个全局异常处理程序,并检查是否能够在那里捕获OpenGL错误。