【问题标题】:Admob Banner in LinearLayout with Libgdx Screen带有 Libgdx 屏幕的 LinearLayout 中的 Admob 横幅
【发布时间】:2017-05-16 01:59:21
【问题描述】:

我目前正致力于将 admob 广告纳入我的第一个 libgdx 项目。 我已经设法展示了一个具有相对布局的横幅。但我想知道它在垂直线性布局中会是什么样子,首先添加游戏屏幕,然后添加横幅。到目前为止,我看到的所有关于线性布局的代码示例都是在 xml 中实现的,但我想通过代码来实现它。

这是我当前的相对布局实现的样子:

RelativeLayout layout = new RelativeLayout(this);
        layout.addView(gameView);

    RelativeLayout.LayoutParams adParams =
            new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
    adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    layout.addView(adView, adParams);

    setContentView(layout);
}

我尝试用“LinearLayout”和 layout.setOrientation(LinearLayout.VERTICAL) 替换每个“RelativeLayout”,但我猜这不是 LinearLayouts 的工作方式。我在 Android 应用程序编程方面几乎没有经验,所以我会很感激任何提示。

编辑:这是我自己尝试过的(非常基本的)方法(有和没有注释行,在这两种情况下只有 gameView 是可见的):

LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        //layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
        layout.addView(gameView);
        layout.addView(bannerAdView);

        setContentView(layout);

【问题讨论】:

  • 向我们展示您如何使用 LinearLayout 的示例。
  • 好的,行已添加
  • @Doflaminhgo 嘿。我发现你删除了问题"Room migration: Indices = null (“Migration didn't properly handle”)"。我面临同样的问题并试图解决它。你能帮我吗?很抱歉在这里发表评论!
  • @vizsatiz 好吧,我尝试的解决方案是创建另一个完全符合房间期望的表(您可以在房间创建的“模式”文件中找到必要的创建语句)。然后我将旧表的所有条目复制到新表中,删除旧表并重命名新表。这有点累,但也是我找到的唯一解决方案:)
  • 哦,谢谢老兄!!我试过了,它奏效了:)

标签: android android-layout libgdx admob


【解决方案1】:
    // Create the layout
    Linearlayout = new LinearLayout(this);

    // Create the libgdx View
    View gameView = initializeForView(new YourGame(), false);

    // Create and setup the AdMob view
    AdView adView = new AdView(this, AdSize.BANNER, "xxxxxxxx");
    adView.loadAd(new AdRequest());

    // Add the libgdx view
    layout.addView(gameView);

    // Add the AdMob view
    LinearLayout.LayoutParams adParams = 
        new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 
                LinearLayout.LayoutParams.WRAP_CONTENT);

    layout.addView(adView, adParams);

    // Hook it all up
    setContentView(layout);

这是https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx的修改版

【讨论】:

  • 这也没有成功。我目前正在使用 gameViewParams.bottomMargin = AdSize.BANNER.getHeightInPixels(this); 在相对布局中解决它。但是通过这样做,当没有连接加载横幅时,屏幕会留下黑色条纹
  • 到底发生了什么?游戏画面又画了?如果是这样,您可以尝试使用片段。
  • 我不确定游戏屏幕是否被绘制在 adView 上,或者游戏屏幕只是填满了整个屏幕并将广告“推”到外面。默认情况下,LinearLayout 是“match_parent”吗?如果没有,我可能会尝试设置此属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多