2011-09-12 48 views
0

嗨即時通訊有一個父視圖組,它有一個背景,包含一個openglview作爲該視圖組的一部分。如何在Android中使用透明背景在GLSurfaceview的頂部添加文本?

正是我想要的是什麼,我需要有一個透明背景openglview,我希望能看到父母的背景,我希望能寫的文字上openglview的頂部,我不想使用紋理

我試過這個選項,

  1. 設置openglview zorderontop爲真。它使我的文本落後於輝煌。如果我不使zorderontop爲真,背景是黑色的。

  2. 設置transluent主題到,這使得我的glview,也是父視圖組變得透明活動。

  3. 我試圖膨脹佈局包含glview和使用ContexThemeWrapper類動態地更改glview的主題。但是setTheme()在運行時不工作。僅在清單文件中應用主題。

  4. 將佈局背景應用到透明也沒有工作,仍然是黑色的背景。

回答

3

問題是您正在繪製兩個單獨的曲面:一個曲面由ViewRoot創建,一個曲面爲GLSurfaceView創建。這些曲面由SurfaceFlinger合成,一個在另一個之上。 (默認情況下,ViewRoot表面將位於最上方,而GLSurfaceView表面將位於最下方)。

由於所有視圖都被繪製到ViewRoot的表面,它們必須全部位於OpenGL表面之上或OpenGL之下表面。

如果你不想使用紋理,句點,你唯一的選擇是創建第三個表面,這次用SurfaceView代替GLSurfaceView,在GLSurfaceView上方繪製文本。

+0

您好馬修,非常感謝您的回覆。我現在會嘗試這種方法,讓你知道。再次感謝你。 – srinivasan

+0

嗨,謝謝你喲..我解決了它:) – srinivasan

+0

嗨,我現在面臨更多的問題。我有我設置zorderontop(true)的glsurfaceview(因爲我需要我的普通視圖頂部的表面視圖)。即時通訊在scrollview和屏幕im在屏幕頂部的儀表板佈局的surfaceview。當我滾動glsurfaceview正在glsurfaceview之上移動。你能幫我解決嗎? – srinivasan