我正在整合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指出在删除视图之前清除动画以防止旧设备崩溃(见这里)