2016-07-05 68 views
1

https://firebase.google.com/docs/admob/android/banner中提供的示例代碼適用於我在xml文件中使用給定的廣告客戶ID和廣告尺寸。但對於我能夠根據某些參數設置廣告客戶ID和橫幅大小非常重要。Android - 如何動態設置AdMob廣告客戶ID或廣告尺寸?

我認爲這兩個,但他們並沒有對我的工作 - >

Programatically set the AdMob id String

How to specify adUnitId programmatically for AdMob?

當我試圖實現第二個我得到的錯誤,當我嘗試鏈接的java文件到XML文件。他們應該如何鏈接?

+1

請把你的代碼。 @ARIPOVULA – Lampard

回答

1
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <FrameLayout 
     android:id="@+id/adView" 
     android:layout_width="match_parent" 
     android:background="@null" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

AdView mAdView = new AdView(context); 
mAdView.setAdSize(AdSize.BANNER); 
mAdView.setAdUnitId(AD_UNIT_ID); 
FrameLayout frameLayout = (FrameLayout) view.findViewById(R.id.adView); 
frameLayout.addView(mAdView); 
AdRequest adRequest = new AdRequest.Builder().build(); 
mAdView.loadAd(adRequest); 
0

謝謝您的答覆@K。甘地。在我看到您的回覆之前,我想出了以下內容。

經過一番嘗試,我設法做到了。也許還有其他更好的方法來實現這一點,但這是我所做的,它對我來說工作得很好。

在相關的XML文件我沒加爲AD瀏覽任何東西,除了下面的滾動型(如<com.google.android.gms.ads.AdView ....沒有代碼被添加)

<ScrollView android:id="@+id/scrollView6" android:clickable="true" android:layout_width="fill_parent" android:layout_height="wrap_content"/>

的地方,我需要的廣告出現和休息就加入這個滾動型上* java文件僅添加如下(它需要的setContentView後立即添加....):

super.onCreate(savedInstanceState); 
setContentView(R.layout.xmllayoutfile); 
adView = new AdView(this); 
if (Global.dpHeight > 600) { 
adView.setAdSize(AdSize.LARGE_BANNER); 
} else { 
adView.setAdSize(AdSize.BANNER); 
} 
adView.setAdUnitId(Global.adMobID); 


LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View v = inflater.inflate(R.layout.xmllayoutfile, null); //same layout file as declared in setContentView... above 

ScrollView sv = (ScrollView) v.findViewById(R.id.scrollViewName); 

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

sv.addView(ll); 
ll.addView(adView); 
setContentView(v); 

添加此我添加其他代碼,並在予添加代碼的底部後編輯代碼加載廣告

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

而且不要忘了補充:

@Override 
public void onPause() { 
super.onPause(); 
if (adView != null) adView.pause(); 
} 

@Override 
public void onResume() { 
super.onResume(); 
if (adView != null) adView.resume(); 
} 


@Override 
public void onDestroy() { 
super.onDestroy(); 
if (adView != null) adView.pause(); 
} 

`