2011-08-12 124 views
2

我剛從本書開始:開始Android遊戲,我已經有一個問題。在示例遊戲中,我們不使用main.xml,但沒有,我無法實現AdMob。開始Android遊戲和AdMob

有沒有人讀過這本書,並在他們的遊戲中成功實施了AdMob?

這裏是我的代碼:

public abstract class AndroidGame extends Activity implements Game { 
    private AdView adView; 
    AndroidFastRenderView renderView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     renderView = new AndroidFastRenderView(this, frameBuffer); 
     setContentView(renderView); 


     adView = new AdView(this, AdSize.BANNER, "a14e3af977eb71a"); 

     LinearLayout layout = (LinearLayout)findViewById(R.id.admob_test); 

     layout.addView(adView); 

     adView.loadAd(new AdRequest()); 

    } 

我希望有人能幫助我。

回答

2

你不必使用main.xml中實施AdMob廣告,您也可以通過編程在Java中創建的AdView

編輯:檢查link再次,一切都在那裏:

五行代碼需要添加一個橫幅:

  1. 進口com.google.ads *
  2. 聲明AdView實例
  3. 創建,指定一個單位ID,您的AdMob發佈商編號
  4. 添加視圖到UI
  5. 加載它與廣告
+1

是的,但正如他所說,他剛剛開始,所以他不需要考慮廣告,而是更多地關注他的遊戲。 – Tsunaze

+1

我真的是初學者,所以有教程如何實施adMob programmaticlly? – dateien

+2

請看http://code.google。com/intl/fr/mobile/ads/docs/android/fundamentals.html#addadview – Smugrik

0

我想你在XML定義的佈局,其中有一個id爲admob_test的LinearLayout,你可以將adView添加到該佈局中,這很好。

但在此之前,您將您的活動設置爲使用AndroidFastRenderView作爲ContentView,因此不會顯示LinearLayout。

嘗試將AdView直接添加到您的主視圖,或將您的活動設置爲使用LinearLayout作爲內容視圖。

3

如果你看看行

setContentView(renderView);  

您設置的內容視圖到任何的RenderView是。該類擴展了SurfaceView。這意味着你將SurfaceView設置爲內容視圖,而不是LinearView或RelativeView。

如果你這樣做了「AdMob和surfaceview」快速谷歌,你可能會遇到此鏈接:

Admob on surfaceview

我得到這個工作對我的應用程序通過執行以下操作:

adView = new AdView(this, AdSize.BANNER, "<enter your admob ID here>"); 
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    adView.setLayoutParams(lp); 

    RelativeLayout layout = new RelativeLayout(this); 
    layout.addView(renderView); 
    layout.addView(adView); 
    adView.loadAd(new AdRequest()); 

    setContentView(layout); 
    //setContentView(renderView); 

我不需要更改xml文件中的佈局。

我花了一個美好的一天試圖找出答案。這是一個艱難的,但我希望這有助於。