2014-03-06 176 views
0

我試圖在自定義視圖上顯示廣告,但不知何故我看不到它。爲什麼我看不到廣告?

layout = new LinearLayout(this); 

    layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 

    view = new GameView(this); 
    adView = new AdView(this); 
    adView.setAdUnitId("id"); 
    adView.setAdSize(AdSize.BANNER); 
    layout.addView(view); 
    layout.addView(adView, 640, 100); 
    adView.loadAd(new AdRequest.Builder().addTestDevice("id").build()); 

    setContentView(layout); 
+0

我假設你已經用正確的ID替換了'setAdUnitId()',對吧? – nKn

+0

是的,我只是重播它的帖子。 – Busti

回答

0

我認爲這是與您要添加View S到LinearLayout的方式。 adView似乎沒問題,但我敢打賭,GameView類有些東西讓它不能顯示。

我建議定義AdViewLinearLayout在佈局文件,而不是宣佈新LinearLayout編程,並添加View事後就像你現在在做什麼。下面的代碼是我使用的代碼,它工作,這就是爲什麼我認爲這是一個佈局問題。

final LinearLayout adLayout = (LinearLayout) findViewById(R.id.your_ad_containing_linearlayout); 

final AdView adView = new AdView(this); 
adView.setAdUnitId("your-id"); 
adView.setAdSize(AdSize.BANNER); 

adLayout.addView(adView); 

final AdRequest.Builder adReq = new AdRequest.Builder(); 
adReq.addTestDevice("..."); 

final AdRequest adRequest = adReq.build(); 
adView.loadAd(adRequest); 
0

我認爲問題是LinearLayout。 如果你想顯示在GameView頂部的廣告,你應該使用的FrameLayout只需像下面

FrameLayout layout = new FrameLayout(this); 
    layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

    view = new GameView(this); 
    view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

    AdView adView = new AdView(this); 
    LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; 
    adView.setLayoutParams(params); 

    adView.setAdUnitId("id"); 
    adView.setAdSize(AdSize.BANNER); 
    layout.addView(view); 
    layout.addView(adView, 640, 100); 
    adView.loadAd(new AdRequest.Builder().addTestDevice("id").build()); 
+0

字段重力不存在... – Busti

+0

您應該從FrameLayout導入LayoutParams。看看你的java文件的導入並從其他類中刪除LayoutParams。 – tasomaniac

0

我認爲這個問題是你設置你的「父」佈局的爲水平方向。嘗試將其設置爲垂直。

layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
layout.setOrientation(LinearLayout.VERTICAL); 

,並確保您的自定義視圖GameView沒有佈局的高度MATCH_PARENT,因爲首先添加它,如果它的高度設置,以填補父在它下面的觀點是不可見的。