我正在开发一款能够广泛使用位图的Android应用程序,并且我正在寻找一种可靠的方法来在不同的设备上获得OpenGL的最大纹理大小。
我知道最小尺寸= 2048x2048,但这还不够好,因为已经有更高分辨率的平板电脑(例如2560x1600)
那么有可靠的方法来获取这些信息吗?
到目前为止,我已经尝试过:
我正在使用minimum-sdk = 15(ICS)并且我在华硕Transformer TF700t Infinity上进行测试
有没有人知道另一种方法来获得它? 或者我是否必须编译具有最大画布大小的已知GPU列表?
答案 0 :(得分:1)
尝试使用此代码
int[] maxTextureSize = new int[1];
GLES10.glGetIntegerv(GL10.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0);
maxTextureSize存储解码图像的大小限制,例如4096x4096,8192x8192。请记住在 MainThread 中运行这段代码,否则您将获得Zero。
答案 1 :(得分:1)
这将为您提供允许的最大高度。
Canvas canvas = new Canvas();
canvas.getMaximumBitmapHeight() / 8