私のアプリは、8888 形式のフルスクリーン glSurface オーバーレイを使用しています。ほとんどのデバイスでは、これで問題なく動作します。OpenGL ES を使用して半透明の画像を描画できます。これは実際に、他のネイティブ ビューの上に透明でオーバーレイされます。
ただし、Nexus 10 および Note 2 (およびおそらくその他のデバイス) では、DDMS で撮影したスクリーンショットは完全に正しく見えますが、半透明のピクセルは物理ディスプレイでは正しく見えません! これは私を困惑させました - 視覚的な表示がスクリーンショットとどう違うのでしょうか?
フレームバッファ内のアルファ値が 1 (0xff) または 0 (0x00) 以外のピクセルの場合、異常が発生するようです。
Nexus 10 の DDMS スクリーンショットを添付しました。テストカードの画像が正確に表示されているはずです。非常に異なる画像を示すディスプレイからの写真も添付しました...説明したように、EGL オーバーレイ アルファ値が 0x00 または 0xff ではないピクセルが正しく表示されていないようです。注 2 も同様です。
この問題を解決する方法を知っている人はいますか? デバイスのディスプレイに問題があるかどうかをプログラムで判断する方法さえわからないため、これは私たちにとって大きな障害です。