gpt4 book ai didi

android - AdMob 如何确定 SMART_BANNER 大小何时已分配

转载 作者:行者123 更新时间:2023-12-02 12:19:47 28 4
gpt4 key购买 nike

我有一个 Activity,其布局包含带有 ads:adSize="SMART_BANNER"AdView。它位于屏幕底部,位于自定义 WebView 下方。现在,WebView 具有根据可用空间(像素尺寸)呈现的内容。因此,在渲染 WebView 内容之前,我需要知道 SMART_BANNER 将占用多大的尺寸(特别是高度),以及为 WebView 留下的内容。来自 here据称,智能横幅的高度可以是 32dp50dp90dp 中的任意一个。

据我所知,我需要等待 AdView 的格式确定,然后才能渲染 WebView。我怎样才能做到这一点?也许是setting an AdListener ?然而,methods AdListener 似乎只允许我确定例如当广告加载完毕...我不想等待广告加载,我只想等待分配广告的实际大小。

我知道我可以通过将 AdView 设置为 BANNER 并固定高度 50dp 来避免这一切,这确实有效美好的。但我更喜欢 SMART_BANNER,主要是因为在小手机屏幕上横向模式下高度可以缩小到 32dp,为实际内容留出更多空间。

最佳答案

AdView 没有 API 可以在广告实际加载之前检索其大小,并且该类是 final,因此您也无法自己实现它。

要动态确定横幅高度,您需要使用 AdListener 正如您所怀疑的。

另一种选择是使用根据设备屏幕高度动态选择的静态值(来自 documentation ):

32 dp where height ≤ 400 dp

50 dp where height > 400 dp and ≤ 720 dp

90 dp where height > 720 dp

(您可以查看 this 答案来确定屏幕高度,并查看 this one 来在 px 和 dp 值之间进行转换)

例如,您可以在 Activity 中使用类似的内容:

private int getSmartBannerHeightDp() {
DisplayMetrics dm = getResources().getDisplayMetrics();
float screenHeightDp = dm.heightPixels / dm.density;

return screenHeightDp > 720 ? 90 : screenHeightDp > 400 ? 50 : 32;
}

关于android - AdMob 如何确定 SMART_BANNER 大小何时已分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53060748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com