我正在使用 opengl,对它还很陌生。最近尝试在我的应用程序中渲染一个半透明的云,但它在我的 Galaxy S 和我的 HTC desire 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 static sprite Activity 绘制相同的图像以排除我的代码中的错误,但遇到了同样的问题。
编辑:
还尝试在 HTC Sensation 和 LG Optimus 2x 上绘制相同的纹理。 HTC Sensation 上的问题与 Desire HD 上的问题相同,LG Optimus 2x 上没有问题。
最佳答案
尝试通过调用 gl.glEnable(GL10.GL_DITHER)
(如果不是 GL10,则使用您正在使用的等效 gl 版本)启用抖动。
编辑:如果这不起作用,还可以在 onCreate()
方法中调用 getWindow().setFormat(PixelFormat.RGBA_8888);
。
关于android - 半透明纹理在不同的安卓手机上看起来不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9433052/