当我尝试在imageview中渲染位图时
mImageView.setImageBitmap(mBitmap);
我会看到Bitmap太大而无法上传到日志中的纹理中。
好的,我知道OpenGl有限制会抛出此警告信息 但我能否知道图像是否成功?
答案 0 :(得分:1)
您应该通过获取GL_MAX_TEXTURE_SIZE
环境值的值来检查最大纹理大小。
您可以在GLBEnchmark网站上查看各种Android设备的此值:http://www.glbenchmark.com/phonedetails.jsp?benchmark=glpro25&D=Google+Nexus+S&testgroup=gl
要减少视频内存占用,您可能需要使用ETC1纹理。如果您使用OpenGL ES 2.0,您可以立即使用它(ETC1是GL ES 2.0规范的一部分),如果您使用OpenGL 1.1,您应该通过查看GL扩展列表来检查ETC1支持。
答案 1 :(得分:0)
可能除了非常明显的“它是否在屏幕上?”之外回答。只是不要发疯,你应该没事。您可以执行裁剪或调整图像副本的操作,以减少RAM占用空间。我从未尝试使用巨大的图像,但Android通常会执行崩溃或减速等操作。