嗨,我开发采用了android OpenGL ES的游戏,并纷纷创出问题:PNG纹理不加载在HTC渴望
我的游戏加载在模拟器(Windows XP和Vista从日食)的罚款,这也在T-Mobile G2(HTC Hero)上加载效果不错,但是当我将其加载到我的新HTC Desire上时,没有任何纹理显示为正确加载(或根本不加载)。我怀疑BitmapFactory.decode方法,虽然我没有证据表明这是问题。
我所有的纹理都是2的幂,JPG纹理似乎加载(虽然它们看起来质量不是很好),但任何GIF或PNG都不会加载,除非加载了2×2的红色方块罚款和一个纹理映射到一个3d对象,但似乎用最接近的颜色填充网格的每个三角形)。
这是我加载图片代码:
AssetManager am = androidContext.getAssets();
BufferedInputStream is = null;
try {
is = new BufferedInputStream(am.open(fileName));
Bitmap bitmap;
bitmap = BitmapFactory.decodeStream(is);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
} catch(IOException e) {
Logger.global.log(Level.SEVERE, e.getLocalizedMessage());
} finally {
try {
is.close();
} catch(Exception e) {
// Ignore.
}
}
感谢
一个解决方法是使用Bitmap.createScaledBitmap为“比例”位图以完全相同的大小。这通常使它更快乐。 – 2011-12-26 11:34:48