画面幅が狭くてadmobの広告が表示できないときの対処法
admobは画面幅が最低でも320dp以上ないと、広告を表示してくれません。
QVGAやHVGAでも画面幅は320dp以上あるのに、広告が表示されないということは、ActivityのテーマをDialogにしている場合が多いのではないでしょうか。
解決方法
- 広告を表示するのをやめる
- Activityのテーマを変える
- Dialogテーマをカスタマイズする
2.ActivityのテーマをDialogにしなければ、admobも問題なく表示されることだと思います。
3.どうしてもActivityをDialogで表示したい場合は、Dialogのテーマをカスタマイズするしか有りません。
カスタマイズする方法としては、Dialogテーマの背景画像を差し替えるだけでOKです。
画像を差し替える理由
Theme.Dialogには、次のような余白を含む画像リソースが使われています。
上記の余白のせいで、広告を表示する320dpを確保できなかったわけです。
ですので、余白のない画像リソースを使えば表示幅も320dpを確保できるわけです。
カスタマイズしてみる
具体的には、styles.xmlにTheme.Dialogを継承したstyleを定義します。
次のようにします
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="FillDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@drawable/my_dialog</item> </style> </resources>
上記スタイルをAndroid.manifest内のActivityに適用します。