我的android应用程序处理非常大的位图。因此,我在图像视图中关闭了硬件加速功能。 但是,有些用户已将Developer-Option的“强制GPU加速”设置为开启状态。这会导致错误“位图太大而无法上传到纹理中”。 如果我使用isHardwareAccelerated()检查视图,它总是返回false。
有没有办法捕捉OpenGL-Error'Bitmap太大而不能上传到纹理'?
答案 0 :(得分:2)
位图由像素组成,您可以计算位图矩阵中的像素数,设置位图像素数量的限制。在OpenGl中我不能说,但总的来说我们可以轻松处理它们,还有一种方法
bitmap.inSampleSize();
如果你指定
Bitmap.inSampleSize()= 1;
然后将加载原始位图像素。
Bitmap.inSampleSize()= 2;
然后像素将变为原始像素的一半。
Bitmap.inSampleSize() = 4
然后像素将变为原始像素的1/4。 这样可以减小位图中像素的大小, 我已经在我的程序中做了这件事,希望它也能和你合作。
答案 1 :(得分:0)
我没有在Android上使用OpenGL,因此不知道是否有任何特殊的事情可以捕捉未捕获的异常或错误。您可以尝试register一个全局异常处理程序,并检查是否能够在那里捕获OpenGL错误。