6

AdSize 类具有获取广告尺寸的 getWidthInPixels() 和 getHeightInPixels() 方法。虽然,它们对 BANNER 工作正常,但它们不工作 SMART_BANNER。他们总是返回-2。

您能否建议我在运行时获取 AdView 大小的方法?

4

1 回答 1

19

如果您使用的是 Google Play 服务库,您可以简单地使用:

int widthPixels = AdSize.SMART_BANNER.getWidthInPixels(this);
int heightPixels = AdSize.SMART_BANNER.getHeightInPixels(this);

在旧的独立 Android AdMob SDK 中,您必须采用 hacky 方式:

免责声明:这是创建 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.
于 2013-01-07T22:11:23.453 回答