使Admob Native express广告具有动态性



我正在整合Admob原生快递广告在我的应用程序。我希望它能在各种尺寸的设备上显示出来。在小型设备上,由于广告尺寸的原因,它无法显示。添加在listview和gridView中。请告诉我,它将如何加载add在每个尺寸的设备。甚至我试图动态设置大小,但不适合我。

我成功编写了以下代码:

private LinearLayout mAdContainer;
private NativeExpressAdView mAdmobAdView;
private AdRequest mAdmobAdRequest;
[...]
private void loadAds() {
    // find out the width of the device in dp
    DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
    float deviceWidthInDp = displayMetrics.widthPixels / displayMetrics.density;
    int adWidth = (int)(deviceWidthInDp);
    if (mAdmobAdView != null) {
      // prevents a crash on older devices
      mAdmobAdView.clearAnimation();
    }
    mAdContainer.removeAllViews();
    mAdmobAdView = new NativeExpressAdView(this);
    mAdmobAdView.setAdSize(new AdSize(adWidth, 250)); // AdSize(width, height), height ranges from 80 to 1200
    mAdContainer.addView(mAdmobAdView);
    mAdmobAdView.setAdUnitId(getString(R.string.admob_id)); // set your admob id
    mAdmobAdRequest = new AdRequest.Builder()
            .build();
    mAdmobAdView.loadAd(mAdmobAdRequest);
}

编辑:感谢fattire指出在删除视图之前清除动画以防止旧设备崩溃(见这里)

最新更新