我为三星 S3 Mini 和 Google Nexus S 等设备创建了一个额外的纵向布局——纵向宽度为 480 像素。
要添加这个克隆的布局,我使用 Android Studio创建其他...然后选择密度并选择高密度为我提供新文件夹中的布局副本res/layout-hdpi
- 当我使用 AVD 时,布局在模拟器中大部分工作正常为 480 x 800 屏幕尺寸创建(事物出现并且在您期望的位置)。
但是,我的 AdMob 广告在其他布局中运行良好 - 例如layout-sw360dp-port
和layout-sw600dp-port
-未显示。LogCat 状态Not enough space to show ad. Needs 480x75, but only has 432x570
。
这对我来说部分是有意义的——因为根据 Android 设计指南,RelativeLayout
它的com.google.android.gms.ads.AdView
所在位置必须同时设置android:paddingLeft="@dimen/activity_horizontal_margin"
和android:paddingRight="@dimen/activity_horizontal_margin"
设置——每个必须大约 24 像素。
因此,可用的水平空间不是 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
尺寸的广告(我认为应该很容易适应可用空间)说它无法在三星 S3 Mini 或 Google Nexus S 等设备上显示。我是否必须删除该填充哪个RelativeLayout
有?这是一个好主意吗?