Android:添加Admob横幅而不重叠主视图

Android:添加Admob横幅而不重叠主视图,android,admob,Android,Admob,我正在尝试向自定义SurfaceView(我的主游戏屏幕)添加Admob横幅。我可以将横幅放在屏幕的顶部或底部,但在这两种情况下它都与游戏屏幕重叠(并隐藏一些基本的UI元素)。如何让横幅在进入时调整游戏屏幕的大小,使其不重叠任何内容 这个线程提供了一个xml解决方案:,但由于我的视图是用java编写的,所以我需要一种以编程方式实现它的方法。我试图翻译它,但在实现代码时没有显示任何横幅。下面是两个解决方案,第一个不显示任何横幅,第二个在底部显示横幅,但有重叠。我需要更改哪些参数来消除重叠 /* A

我正在尝试向自定义SurfaceView(我的主游戏屏幕)添加Admob横幅。我可以将横幅放在屏幕的顶部或底部,但在这两种情况下它都与游戏屏幕重叠(并隐藏一些基本的UI元素)。如何让横幅在进入时调整游戏屏幕的大小,使其不重叠任何内容

这个线程提供了一个xml解决方案:,但由于我的视图是用java编写的,所以我需要一种以编程方式实现它的方法。我试图翻译它,但在实现代码时没有显示任何横幅。下面是两个解决方案,第一个不显示任何横幅,第二个在底部显示横幅,但有重叠。我需要更改哪些参数来消除重叠

/* Admob advert on Android done programmatically! */
    adView = new AdView(this, AdSize.BANNER, "a14dc6ed8aead31");
    gameView = new GameView(this, gameEng, adView);

    //no banner displays with this code
    RelativeLayout rl = new RelativeLayout(this);
    RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,
            RelativeLayout.LayoutParams.FILL_PARENT);
    RelativeLayout.LayoutParams gameViewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT); 
    adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    gameViewParams.addRule(RelativeLayout.ABOVE);
    rl.addView(adView, adParams);
    rl.addView(gameView, gameViewParams);
    setContentView(rl);

    //a banner at the bottom displays, but it overlaps my game screen
    /*FrameLayout layout = new FrameLayout(this);
    FrameLayout.LayoutParams gameParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
            FrameLayout.LayoutParams.FILL_PARENT);
    FrameLayout.LayoutParams adsParams =new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 
            FrameLayout.LayoutParams.WRAP_CONTENT, android.view.Gravity.BOTTOM|android.view.Gravity.CENTER_HORIZONTAL); 
    layout.addView(gameView, gameParams);
    layout.addView(adView, adsParams);
    setContentView(layout);*/

    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request);

我从未解决过这个问题,但我找到了一个解决办法。。如果其他人遇到此问题,请尝试向上移动所有图形坐标:减去广告横幅的高度(可以使用getHeight()方法获得)

广告横幅不会立即加载,因此您必须不断检查它。我在我的主要比赛循环中做到了这一点