2011-09-12 17 views
0

こんにちは私は背景を持つ親ビューグループを持って、そのビューグループの一部として、OpenGLviewが含まれています。GLSurfaceviewの上に透明な背景をアンドロイドで追加するにはどうすればいいですか?

透明な背景を持つOpenGLviewが必要ですが、親の背景を見たいと思っていて、openglviewの上にテキストを書きたいと思っています。テクスチャを使用したくありません

私は真のとしてopenglview zorderontopを設定し、

  1. を、このオプションを試してみました。それはglviewの後ろに私のテキストを作る。 zorderontopをtrueにしない場合、背景は黒です。

  2. 透明になるために私のglviewとも親ビュー・グループを作る活動にtransluentテーマを設定します。

  3. 私はレイアウトを膨らませようとしましたが、glviewが含まれており、ContexThemeWrapperクラスを使用してglviewのテーマを動的に変更しました。しかしsetTheme()は動作しません実行時に。マニフェストファイルにテーマを適用するだけで動作します。

  4. レイアウトのバックグラウンドを透明に適用すると、まだ黒い背景が残っています。 GLSurfaceViewのために作成ViewRootによって作成された一面、そして一面:

答えて

3

問題は、次の2つの別々の表面に描いていることです。これらのサーフェスは、SurfaceFlingerによって合成されます。 (デフォルトでは、ViewRootサーフェスは一番上にあり、GLSurfaceViewサーフェスは一番下に表示されます)

ビューはすべてViewRootのサーフェスに描画されるため、すべてOpenGLサーフェスの上かOpenGLの下に配置する必要があります表面。

テクスチャを使用したくない場合は、GLSurfaceViewの代わりにSurfaceViewを使用して、GLSurfaceViewの上にテキストを描画する、3番目のサーフェスを作成します。

+0

こんにちはマトウ、お返事ありがとうございました。私は今このアプローチを試してみましょう、あなたに教えてください。ありがとうございました。 – srinivasan

+0

こんにちは、私はそれを解決しました。:) – srinivasan

+0

こんにちは、私はもう一つの問題に直面しています。私はzorderontop(true)を設定するglsurfaceviewを持っています(becoz私は通常のビューの上に私のsurfaceviewが必要です)。私はスクロールビュー上にサーフェイスビューを持っていて、スクリーン上にはダッシュボードレイアウトを持っています。 glsurfaceviewをスクロールすると、glsurfaceviewの上を移動しています。私を助けてもらえますか? – srinivasan

関連する問題