绑定代码:
gl.glBindTexture (GL10.GL_TEXTURE_2D, id);
gl.glTexParameterf (GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf (GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf (GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf (GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
gl.glTexEnvf (GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE);
GLUtils.texImage2D (GL10.GL_TEXTURE_2D, 0, bitmaps.get (resource), 0);在Android2.3.3和Android4.x.x上:

在Android2.3.7上,我有:

附加信息:我的纹理宽度和高度不是2的幂。纹理位于可绘制-nodpi文件夹中。纹理正被拉伸以适应不同的屏幕尺寸,第一个屏幕截图是从屏幕大小854x480的设备上拍摄的,第二个屏幕截图是800x480。
我的第一个嫌疑人是gl.glTexParameterf (GL10.GL_TEXTURE_2D,设置,但我不是他们的专家)。我尝试了一些替代方案,但没有起到多大作用。
发布于 2013-01-31 17:01:05
坏消息是,我尝试用2的幂(1024x1024)设置纹理宽度和高度,它起了作用:

原因是这个设备,因为有相当数量的设备不支持npot纹理。
因此,对于解决办法,我认为,如果提供的纹理是在npot尺寸,它将更好地调整他们的飞行时,负荷。
发布于 2013-02-01 09:55:12
对于安卓上的OpenGLES来说,你需要保持安全,因为很多厂商都不支持两种纹理的非幂化。您可以脱机调整所有纹理的大小,也可以在加载期间调整它们的大小。有关如何轻松调整两个纹理的非幂值的更多信息,请检查该类:https://github.com/TraxNet/ShadingZen/blob/master/library/src/main/java/org/traxnet/shadingzen/core/BitmapTexture.java
https://stackoverflow.com/questions/14629902
复制相似问题