android - Admob 横幅广告显示高度在使用 andengine 制作的安卓游戏中不正确

标签 android android-layout admob andengine

我已经实现了 admob |将 Google Mobile AdSDK 加入到我使用 andengine 构建的安卓游戏中。广告正在加载到游戏中,但在打开应用程序后第一次显示不正确。但是当我退出应用程序 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.

}

还有我输入代码以查看广告 View 大小的日志。它总是在应用程序启动时打印这个

AdView banner size is 0 and 0

最佳答案

仅在完成加载后尝试将 adView 添加到 frameLayout:

adView.setAdListener(new AdListener() {
    public void onAdLoaded(){
        frameLayout.addView(adView, adViewLayoutParams);
    }
});

如果您的广告正在刷新,您可能需要在添加之前先检查 adView 是否已添加到 frameLayout,否则它会崩溃。

关于android - Admob 横幅广告显示高度在使用 andengine 制作的安卓游戏中不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249085/

相关文章:

java - 尽管设置了属性, Canvas 绘图仍未正确绘制

android - ListView 适配器中的按钮

java - 如何将元素固定到底部

android - Admob 不使用 AsyncTask

python - 如何使用其他库编译kivy项目?

android - 应用程序启动器在 Android 中从头重新加载

android - 如何让ImageView与2个Button部分重叠?

android - Admob + Andengine 仅在第二次请求时显示广告

java - 如何使用 OkHttp Android 取消请求

android - 如何在 POST 后以正确的编码在 Flask 中返回 json