0

我想在我的Android App(HTML5)底部添加一个SMART_BANNER,布局定义如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:background="@color/default_header"
>
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:background="@color/add_background"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"

    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/ad_banner">
</com.google.android.gms.ads.AdView>
<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/adView"
    android:background="@color/start_background"
    android:id="@+id/webView" /> 

它与“BANNER”完美配合,但在“SMART_BANNER”总是小一个像素的情况下,会显示以下错误:

W/Ads:没有足够的空间来展示广告。需要 412x90 dp,但只有 411x750 dp。W/Ads:没有足够的空间来展示广告。需要 412x90 dp,但只有 411x750 dp。

问:我在哪里失去了一个 dp(从 412 到 411)?

添加信息:我正在使用模拟器(来自 Android Studio)。如果我使用“Pixel 2XL API 26”(未显示 SMART 横幅),则会出现使用问题,但如果我使用“Pixel API 28”,则横幅会正确显示

最好的问候安德烈亚斯

4

2 回答 2

1

你应该像这样设置宽度和高度:

  <com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/admob_unitid_web">
于 2019-04-16T17:08:13.077 回答
1

您需要将 AdView 的宽度设置为wrap_content而不是match_parent. 至少这就是我对 AdViews 所做的事情,无论它是 BANNER 还是 SMART_BANNER,它总是有效的。

[题外话] 我还注意到您在 WebView 上写了android:layout_above="@+id/adView". 在这种情况下,您不需要声明对 adView 的新引用,因为它之前已经声明过。所以如果你简单地把它@id/adView代替@+id它仍然可以工作。

还可以尝试从您的布局和 AdView 中删除这些填充(即使它设置为 0)。从我所见,不需要他们。

于 2019-04-16T16:47:35.787 回答