私は、 Samsung S3 Mini や Google Nexus S などのデバイス用に追加の縦長のレイアウトを作成しました。これらの縦長の幅は 480 ピクセルです。
この複製されたレイアウトを追加するために、Android Studio を使用して[その他を作成] を選択し、次に[密度] を選択し、[高密度]を選択して、新しいフォルダー内にレイアウトのコピーを提供しました。AVDres/layout-hdpi
を使用すると、レイアウトはエミュレーターでほとんど問題なく動作します。 480 x 800 の画面サイズ用に作成されました (物事が表示され、期待どおりの場所に表示されます)。
layout-sw360dp-port
ただし、他のレイアウト (と など) で正常に機能する私の AdMob 広告layout-sw600dp-port
は表示されません。LogCat の状態Not enough space to show ad. Needs 480x75, but only has 432x570
。
これは私には部分的に理にかなっています.Androidの設計ガイドラインに従って、RelativeLayout
が存在するとセットのcom.google.android.gms.ads.AdView
両方があり、それぞれ約24ピクセルでなければなりません.android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
したがって、使用可能な水平方向のスペースが 480 (デバイスの幅) ではなく、432 (RelativeLayout
後のパディングの幅) であることは理にかなっています。
しかし、なぜ広告は横方向のすべてのスペースが必要だと考えるのでしょうか?
広告の XML は次のようになります。
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="@string/adUNITID"
ads:adSize="BANNER"
android:id="@+id/adView"
android:layout_alignParentStart="false"
android:layout_alignParentEnd="false"
android:layout_alignParentBottom="true" />
ドキュメントは、タイプの広告にBANNER
は「320x50 密度に依存しないピクセル」が必要であることを暗示しています。LogCat で 480 が必要であると言う理由がわかりません。
で広告が表示されなかったのでBANNER
、試してみましSMART_BANNER
たが(これは「全幅の動的サイズのバナー」です)、表示に失敗しました(LogCatに同じメッセージが表示されます)。
ここで明らかな何かが欠けていますか?BANNER
Samsung S3 Mini や Google Nexus S などのデバイスでは、通常のサイズの広告 (利用可能なスペースに簡単に収まると思います) が表示できないと言っている理由について困惑しています。そのパディングを削除する必要がありますか?持っているのRelativeLayout
は?それは良い考えですか?