半透明纹理在不同的Android手机上看起来不同

时间:2012-02-24 15:12:26

标签: android opengl-es transparency textures

我正在使用opengl,它很新。我最近尝试在我的应用程序中渲染半透明云,但在我的Galaxy S和我的HTC渴望HD上看起来不同:(。

以下是两部手机clouds on Galaxy S and Desire HD上云的图片。

读了好几年了,似乎Bitmap.config已经解决了这个问题,所以我在加载位图之前添加了这一行:

mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

没有区别。非常感谢任何提示,谢谢!

编辑:

我在onCreate方法中添加了以下两行但两种手机的纹理保持不变。

    getWindow().setFormat(PixelFormat.RGBA_8888);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);

编辑:

我尝试使用api demos静态精灵活动绘制相同的图像以排除我的代码中的错误但是遇到了同样的问题。

编辑:

还尝试在HTC Sensation和LG Optimus 2x上绘制相同的纹理。 HTC Sensation与Desire HD上的问题相同,LG Optimus 2x没有任何问题。

2 个答案:

答案 0 :(得分:0)

尝试通过调用gl.glEnable(GL10.GL_DITHER)来启用抖动(或者如果不是GL10则使用等效的gl版本)。

修改:如果不起作用,请在getWindow().setFormat(PixelFormat.RGBA_8888);方法中调用onCreate()

答案 1 :(得分:0)

This question可能与您有关。也许,你在HTC Desire HD上运行非官方版本。

还可以尝试以下设置(在Activity.onCreate(..)方法中调用):

getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);