我已经实现了ADMOB |Googlemobileadsdk进入了我的Android游戏,并与AndEngine一起构建。打开应用程序后,广告正在加载到游戏中,但第一次没有正确显示。但是,当我通过单击添加或转到Google Play排行榜并返回应用程序时说出App Activity说,然后开始正确显示它。因此,基本上,当我打开应用程序时,广告的宽度是全宽,但高度几乎为一半。如果单击广告,请转到广告链接,然后按下向后按钮,然后将广告带有全宽度全高。卡在此上3天:/
public static AdView adView;
@Override
protected void onSetContentView() {
final FrameLayout frameLayout = new FrameLayout(this);
final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
adView = new AdView(this);
new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("MY AD UNIT ID");
final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_HORIZONTAL);
this.mRenderSurfaceView = new RenderSurfaceView(this);
mRenderSurfaceView.setRenderer(this.mEngine, this);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("MY EMULATOR ID")
.addTestDevice("MY DEVICE ID")
.build();
final FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams);
frameLayout.addView(adView,adViewLayoutParams);
this.setContentView(frameLayout, frameLayoutLayoutParams);
adView.loadAd(adRequest);
Log.d("Ads","AdView banner size is "+adView.getWidth()+" and "+adView.getHeight());
//Creating the banner view.
}
也将日志我输入代码,以查看adview大小。它总是在应用程序的启动下打印出来
adview横幅大小为0和0
仅在加载后才尝试将adView
添加到frameLayout
:
adView.setAdListener(new AdListener() {
public void onAdLoaded(){
frameLayout.addView(adView, adViewLayoutParams);
}
});
如果您的广告令人耳目一新,则可能需要先检查adView
是否已经添加到frameLayout
之前,或者添加它会崩溃。