在Android应用中设置广告的布局

时间:2014-07-28 18:50:21

标签: android layout admob

我添加了Google AdMob,但广告粉碎了我的应用。我怎么能避免这个?它是布局的参数吗?

发生这种情况:

我认为问题是布局。

这是代码:

private AdView createAdView() {
    adView = new AdView(this);
    adView.setAdSize(AdSize.SMART_BANNER);
    adView.setAdUnitId(AD_UNIT_ID_BANNER);
    adView.setId(12345); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    adView.setLayoutParams(params);
    adView.setBackgroundColor(Color.TRANSPARENT);
    return adView;
}

private View createGameView(AndroidApplicationConfiguration cfg) {
    gameView = initializeForView(new SGame(this), cfg);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.BELOW, adView.getId());
    gameView.setLayoutParams(params);
    return gameView;
}

2 个答案:

答案 0 :(得分:1)

哦,好的。嗯,您确实在广告视图下方有游戏视图。这意味着它将占据广告视图下方的区域,并且它将更短,因为它占用的垂直空间更少。您可以更改:params.addRule(RelativeLayout.BELOW,adView.getId());而是与父母顶部对齐。

答案 1 :(得分:0)

您有两个选择:

  1. 创建一个FrameLayout,用于托管您的2个视图,然后将AdView设置为第二个(即上方)GameView。
  2. 创建一个垂直的LinearLayout,其中包含AdContainer(在其中放置AdView)和GameContainer(放置GameView)。实际上你可以稍微简化一下,但上面的内容可以清晰地理解。