位图到大错误是抱怨图像大小的两倍

mal*_*o95 5 java android opengl-es bitmap

我收到了臭名昭着的OpenGLRenderer错误,"Bitmap too large to be uploaded into a texture." 我对错误很熟悉并且知道我需要保留下面的图像2048 pixels以避免错误.

然而,在一款特定的手机上,三星Galaxy Nexus报告的图像尺寸是实际图像尺寸的两倍.

我的图片位于drawable文件夹中,大小为2048x95.当我运行应用程序并尝试将该图像添加到显示器时,我得到了臭名昭着的错误:

位图太大而无法上传到纹理中(4096x190,max = 2048x2048)

是什么赋予了?

Mic*_*ley 5

如果您的图像位于可绘制文件夹中,则它将根据设备缩放到适当的密度.这意味着对于mdpi设备,您的图像将是合适的尺寸,但对于hdpi,xhdpi和xxhdpi,您的图像将比您想象的大得多,而ldpi设备的图像将更小.

如果您不希望图像像Galaxy Nexus上那样缩放,请将其放在drawable-xhdpi文件夹中.

  • 对于密度无关的图像,例如gl纹理,`-nodpi`可能是更好的选择.或者,如果他使用`BitmapFactory`加载,他可以将`inScaled`参数设置为false. (2认同)