【问题标题】:Semi transparent textures look different on different android phones半透明纹理在不同的安卓手机上看起来不同
【发布时间】:2012-02-24 15:12:26
【问题描述】:

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

这是两部手机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 演示静态 sprite 活动绘制相同的图像以排除我的代码中的错误,但遇到了同样的问题。

编辑:

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

【问题讨论】:

    标签: android opengl-es transparency textures


    【解决方案1】:

    尝试通过校准gl.glEnable(GL10.GL_DITHER) 启用抖动(如果不是 GL10,则使用与您正在使用的 gl 版本等效的版本)。

    编辑:如果这不起作用,请在您的 onCreate() 方法中调用 getWindow().setFormat(PixelFormat.RGBA_8888);

    【讨论】:

    • 感谢您的回复,我已尝试启用抖动,只是再次尝试,没有解决问题。
    • 嗨,我已经尝试添加它以及 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);。对两者都没有影响。
    • 奇怪,那我不知道是什么导致了这个问题:(
    【解决方案2】:

    This question 可能与您有关。也许,您正在 HTC Desire HD 上运行非官方构建。

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

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

    【讨论】:

    • 不改变纹理,反正我用的是官方版本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多