3
我正在嘗試向自定義SurfaceView(我的主遊戲屏幕)添加Admob橫幅。我可以將橫幅放在屏幕的頂部或底部,但它會在兩種情況下重疊遊戲屏幕(並隱藏一些重要的UI元素)。如何在輸入時調整遊戲畫面的大小以使其不會重疊?Android:添加Admob橫幅而不會重疊主視圖
此線程提供了一個xml解決方案:How to get ad to show at bottom of screen without overlap,但由於我的視圖是用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);