我的android应用程序处理非常大的位图。因此,我在图像视图上关闭了硬件加速。但是,有些用户已经将开发者选项“强制gpu加速”设置为打开状态。这会导致错误“位图太大,无法上载到纹理”。如果我使用ishardwareaccelerated()检查视图,它总是返回false。有没有办法捕捉opengl错误“位图太大,无法上传到纹理中”?
6ioyuze21#
位图由像素组成,您可以计算位图矩阵中的像素数,设置位图像素数的限制。在opengl中我不能说,但是一般来说我们可以很容易地处理它们,还有一个方法bitmap.insamplesize();如果你指定
Bitmap.inSampleSize()= 1;
然后加载原始位图像素。
Bitmap.inSampleSize()= 2;
然后像素将变为原始像素的一半。
Bitmap.inSampleSize() = 4
然后像素将变为原始像素的1/4。这样你可以缩小位图中像素的大小,我已经在我的程序中做了这件事,希望它也能和你一起工作。
jpfvwuh42#
我没有在android上使用opengl,因此不知道是否有什么特殊的方法可以用来捕获未捕获的异常或错误。您可以尝试注册一个全局异常处理程序,并检查是否能够在那里捕获opengl错误。
2条答案
按热度按时间6ioyuze21#
位图由像素组成,您可以计算位图矩阵中的像素数,设置位图像素数的限制。在opengl中我不能说,但是一般来说我们可以很容易地处理它们,还有一个方法
bitmap.insamplesize();
如果你指定
然后加载原始位图像素。
然后像素将变为原始像素的一半。
然后像素将变为原始像素的1/4。这样你可以缩小位图中像素的大小,我已经在我的程序中做了这件事,希望它也能和你一起工作。
jpfvwuh42#
我没有在android上使用opengl,因此不知道是否有什么特殊的方法可以用来捕获未捕获的异常或错误。您可以尝试注册一个全局异常处理程序,并检查是否能够在那里捕获opengl错误。