如何解决Android:添加Admob标语,但主视图不重叠
| 我正在尝试将Admob标语添加到自定义SurfaceView(我的主游戏屏幕)。我可以将横幅广告放在屏幕的顶部或底部,但在两种情况下,它都与游戏屏幕重叠(并隐藏了一些必要的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()方法得到它。 ))。
不过,广告横幅不会立即加载,因此您必须继续对其进行检查。我在主游戏循环中做到了这一点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。