スポンサーリンク
xmlにAdMobのレイアウトを定義し、UnitIDを直接記述する方法が一般的だが、ここではJavaからコーディングでUnitIDを指定する方法。
以下のようなAdMobレイアウトをコーディングで実現する。
<!-- AdMob --> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center|bottom" > <com.google.android.gms.ads.AdView android:id="@+id/ad_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="@string/unit_id" /> </LinearLayout>
1.Javaからレイアウトを呼ぶためのIDをLinearLayoutに指定
以下の1行を追記する。
android:id="@+id/ad_view_linear"
2.AdViewをレイアウトから削除
Javaからレイアウトを追加するため、AdView部分を削除する
1と2を実行した結果、xmlは以下となる。
<!-- AdMob --> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center|bottom" android:id="@+id/ad_view_linear"> </LinearLayout>
3.params、UnitID、サイズを指定しLinearLayoutを作成
public static final int WC = ViewGroup.LayoutParams.WRAP_CONTENT; /** * AdMob広告レイアウト作成処理(コードでUNIT IDを指定) * @param view * @param unitId */ public static void AdMobCreateLayout(View view, String unitId){ LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.ad_view_linear); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams (WC, WC); params.gravity = Gravity.CENTER_HORIZONTAL; params.gravity = Gravity.BOTTOM; AdView mAdView = new AdView(this); mAdView.setAdUnitId(unitId); mAdView.setAdSize(AdSize.BANNER); linearLayout.addView(mAdView, params); makeAdRequest(mAdView); } /** * AdMob広告を読み込む * @param mAdView */ public static void makeAdRequest(AdView mAdView) { AdRequest adRequest = new AdRequest.Builder() .build(); mAdView.loadAd(adRequest); }
スポンサーリンク
スポンサーリンク