2014-12-04 44 views
0

好吧,所以這個概念看起來很簡單,但在網上搜索過,但還沒有找到解決方案。所以我正在製作我的第一部android遊戲,woot。但我想通過廣告獲利。這就是問題出現的地方。由於我不是使用我的遊戲佈局,而是使用GLSurfaceView,所以我找不到任何有關設置廣告的信息。 Google的每個廣告教程都使用佈局,或者要求您通過java創建佈局。問題是,這些都仍然使用SurfaceView,而不是GLSurfaceView。我如何通過GLSurfaceView實現廣告?我的意思是,大多數遊戲邏輯上將使用openGL,而不是畫布,所以必須有一種方法,對吧? 任何建議都會有所幫助。如果你們需要查看一些代碼,請告訴我,但它是來自glSurfaceView教程的非常標準的代碼。同時有多個內容視圖?

+0

讓你的問題simple.Try避免段落問題 – 2014-12-04 05:10:01

+0

爲什麼不能有一個帶有'GLSurfaceView'的佈局? – 2014-12-04 05:29:54

回答

0

GLSurfaceView只是一個SurfaceView,其中包含一些代碼來管理線程和EGL上下文。他們並沒有很大的不同。

SurfaceView有兩部分,「表面」和「視圖」。該視圖是View層次結構的一部分,通常只是用於佈局的透明窗口。所有基於視圖的用戶界面都在單層上繪製。 GLES渲染是在表面部分完成的,該表面部分是系統合成的單獨層。默認情況下,表面圖層位於視圖圖層後面,但可以在創建SurfaceView時配置該圖層。

由於Surface位於View的背後,因此您可以在遊戲的頂部繪製帶有Views的廣告而不會干擾它。

你可以在Grafika找到一些例子。例如,「記錄GL應用程序」活動在GLES動畫的頂部具有UI元素(一些文本和單選按鈕)。它使用相對佈局並將UI元素放置在SurfaceView的頂部。

+0

謝謝你的回覆fadden,我會研究一下,看看我能不能找出答案。我會很快再次發佈,讓每個人都知道,如果我想出來或需要更多的幫助。我會檢查出Grafika鏈接 – Zero 2014-12-04 23:25:43

0

根據這一manual,您可以測試代碼的打擊:

TextView textView = new TextView(this); 
textView.setText("overlay!"); 
addContentView(textView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 

顯然,代碼是在活動。

0

所以我做了很多研究和終於找到了工作,這要歸功於法登爲我安排在正確的軌道上解決BTW :)

mGLView = new MyGLSurfaceView(this); 


    LinearLayout screenLayout = new LinearLayout(this); 
    screenLayout.setOrientation(LinearLayout.VERTICAL); 

    // Create a banner ad. The ad size and ad unit ID must be set before calling loadAd. 
    adView = new AdView(this); 
    adView.setAdSize(AdSize.SMART_BANNER); 
    adView.setAdUnitId("/6499/example/banner"); 


    AdRequest.Builder adRequest= new AdRequest.Builder(); 
    adView.loadAd(adRequest.build()); 

    screenLayout.addView(adView); 
    screenLayout.addView(mGLView); 

    setContentView(screenLayout); 
相關問題