地球ウォーカー2

Scala, Python の勉強日記

画面のwidthが足りないとAdMobの広告(AdView)が表示されない

タイトルの通り画面の幅が足りないとAdViewが表示されないらしいので、
Rootの要素にpaddingを設定してしまうと広告が表示されない*1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        >
        <TextView />
        <FrameLayout />
    </LinearLayout>
    <com.google.ads.AdView android:id="@+id/adView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        ads:adUnitId="xxxxxxxxxxxxxxxxxxx"
        ads:adSize="BANNER"
        ads:loadAdOnCreate="true" />
</LinearLayout>

paddingを子要素で指定すると正しく表示される。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:padding="10dip"
        >
        <TextView />
        <FrameLayout />
    </LinearLayout>
    <com.google.ads.AdView android:id="@+id/adView"
                      android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                       ads:adUnitId="xxxxxxxxxxxxxxxxxxx"
                       ads:adSize="BANNER"
                       ads:loadAdOnCreate="true" />
</LinearLayout>

*1:ads:adSize="BANNER"、android:screenOrientation="portrait"の場合