【问题标题】:How to use SMARTBANNER (AdMob) and be sure to show it如何使用 SMARTBANNER (AdMob) 并确保展示它
【发布时间】:2013-02-22 08:10:09
【问题描述】:

我决定在我的应用中添加一个带有 AdMob 的 SMARTBANNER。 正如文档中所述: smart-banners sizes 在 Android 上,纵向,我保留了 50 dp 的高度。所以我只是为它保留了一个空的线性布局,它在过去的应用程序中对我有用:

<LinearLayout
    android:id="@+id/layoutAd"
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:orientation="vertical" />

然后用的方法:

   private void createAdView() {
        if (C.AD_ON) {
            ad_view = new AdView(this, AdSize.SMART_BANNER, C.AD_APPLICATION_ID);
            LinearLayout l = (LinearLayout) findViewById (R.id.layoutAd);
            l.addView (ad_view);
            AdRequest a = new AdRequest();
            ad_view.loadAd(a);
        }
    }

现在,虽然这个简单的方法通常有效,但在这种情况下,我得到了一个错误:

Not enough space to show ad! Wants: <480, 90>, Has: <480, 50>

??? 480x90? 480x50?我在上表中找不到这些尺寸...它们来自哪里? 无论如何,广告没有显示。

然后我尝试保留 90dp 而不是 50dp,并且广告正确显示,留下一个空的空间……猜猜看……大约 40dp。

这时我想到了一个问题:以前,我以前的应用程序都可以在手机上运行。我认为一切都在适应不同的屏幕尺寸和密度。现在我很害怕我的许多广告实际上无法展示,因为广告预期的是 90dp 而不是 50dp 或其他任何数字。

实际上,我决定放置 SMARTBANNER 的唯一原因是我认为不会出现此类问题!

现在...我应该怎么做才能使它在每个可能的屏幕上都能正常工作,并合理地确保它不会在某些密度或某些尺寸上失败?我应该自己检测正在运行的设备,然后以编程方式保留 50、90 或 55 dp?这对我来说听起来很荒谬!

难道没有一些“WRAP_CONTENT”这样的功能适用于横幅,这样我就不必手动指定 90 或 50 像素,而只期望显示正确的横幅和适应的布局给它?

谢谢。

【问题讨论】:

  • 这是一个奇怪的情况,上面的代码应该可以工作。你在什么设备上试过这个?

标签: android android-layout admob


【解决方案1】:

如果您想使用固定高度(而不是使用推荐的 WRAP_CONTENT),您将不得不为每个屏幕尺寸提供尺寸。我使用以下维度,但请注意,如果智能横幅的实施发生变化,这些维度可能会发生变化。

/values/dimens
<dimen name="ad_min_height">50dp</dimen>

/values-land/dimens
<dimen name="ad_min_height">32dp</dimen>

/values-large-land-v11/dimens
<dimen name="ad_min_height">90dp</dimen>

/values-large-v11/dimens
<dimen name="ad_min_height">90dp</dimen>

【讨论】:

    【解决方案2】:

    您是否真的在智能横幅上尝试将WRAP_CONTENT 替换为layout_height?这是解决方案和推荐的做法。

    【讨论】:

    • 哦,我的....我是个彻头彻尾的白痴还是什么?我以为我已经尝试过了,但有些方法不起作用,所以我切换到了固定尺寸。现在我又试了一下,没有真正的理由不选择 wrap_content...
    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2015-11-07
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多