AdSize类具有getWidthInPixels()和getHeightInPixels()方法来获取广告的尺寸。尽管它们对于BANNER正常工作,但对SMART_BANNER无效。他们总是返回-2。
您能否建议我一种在运行时获取AdView尺寸的方法?
最佳答案
如果您使用的是Google Play服务库,则可以简单地使用:
int widthPixels = AdSize.SMART_BANNER.getWidthInPixels(this);
int heightPixels = AdSize.SMART_BANNER.getHeightInPixels(this);
在旧的独立Android AdMob SDK中,您必须采用骇人听闻的方式:
免责声明:这是创建AdSize的不正确方法。 不要将此AdSize传递到AdView构造函数中!
希望智能横幅实现将在将来的版本中修复,因此您不必执行这种棘手的解决方法。但是,这是可以做到的:
// This testSize should not be passed to the AdView constructor.
// Always pass AdSize.SMART_BANNER instead.
AdSize testSize = AdSize.createAdSize(AdSize.SMART_BANNER, this);
int widthPixels = testSize.getWidthInPixels(this);
int heightPixels = testSize.getHeightInPixels(this);
// testSize should not be referenced past this point.