在Android版Unity中确定Admob SmartBanner的实际高度

Jos*_*lfe 4 android unity-game-engine admob

因此,我正在将admob标语添加到Unity 4.6 Android游戏中。我的横幅位于底部,需要在用户界面中进行说明。具体来说,我需要确切知道它有多高,但是我在弄清楚这个问题上遇到了麻烦。

根据此处找到的信息,智能横幅的高度应为32、50或90像素,具体取决于设备的高度。不过,这似乎并非通常情况。

一些搜索似乎表明这是由于密度像素。因此,我尝试使用px = dp *(Screen.dpi / 160)转换指定的像素高度。因此,例如,如果我确定横幅广告的高度应为90像素,则可以使用bannerHeight = 90 *(Screen.dpi / 160)。这似乎适用于某些设备,但不适用于其他设备。

例如,我的Nexus 4的DPI为320。使用上述参数,似乎表明横幅广告的高度应为180像素,但实际上横幅广告的高度约为90像素。但是在Nexus 7(dpi为166)上,当公式表明该横幅应为〜93时,横幅看起来大约为120像素高。

因此,我想我不知道如何弄清横幅的实际高度,也没有找到从API获取此信息的方法。我的横幅广告代码非常丰富:

 string adUnitId = "my_id";

 BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);
 AdRequest request = new AdRequest.Builder().Build();
 bannerView.LoadAd(request);
Run Code Online (Sandbox Code Playgroud)

小智 7

首先,您需要计算Google将为您提供的广告(32还是50或90吗?),您可以通过屏幕尺寸进行计算。

高度/ dpi =实际高度,以英寸为单位

因此,Google表示,高于720(dp为160dpi)的高度大约为720/160 = 4.5英寸,如果高于该高度,则广告比其50 dp低90个像素(dp!)!400/160 = 2.5,低于此值,广告将为32 dp

所以!如果我有1920x1080的小米mi3,那1920 / 480dpi = 4英寸高..这将为我们提供50 dp广告。

具有将DP转换为像素的公式

px = dp *(Screen.dpi / 160)

50 *(480/160)= 150像素的广告高度!

对于风景,您需要使用“高度” 1080而不是1920 1080 / 480dpi = 2.25风景中的高度,这意味着广告将为32像素dp

转换为:

32* (480/160) = 96 pixels in landscape
Run Code Online (Sandbox Code Playgroud)

它太糟糕了,谷歌没有给出足够的例子,所以我们可以检查一下自己。

您的信息页面是:

https://developers.google.com/admob/android/banner


小智 7

有答案:https : //stackoverflow.com/a/14204959/1900546

int heightPixels = AdSize.SMART_BANNER.getHeightInPixels(this);
Run Code Online (Sandbox Code Playgroud)


Ven*_*ios 0

您提供的链接表示智能横幅的高度为

  1. 横屏手机为 32 dp
  2. 手机竖屏时为 50 dp
  3. 平板电脑任一方向均为 90 dp

我们就拿你举的两个例子来说吧。

Nexus 4 的 DPI 约为 320 dp。鉴于它是一部手机,它将有一个高度为 50 dp 的广告。使用公式计算得出 50 * 320 / 160 = 100 像素(接近您的实际横幅高度)

我查到的 Nexus 7s 有 216 dp (2012) 或 323 dp (2013),所以我不太知道哪个型号有 166 dp。
但我们假设它是 216 dp,那么作为平板电脑,广告高度(以 dp 为单位)为 90。因此,像素 = 90 * 216 / 160 = 121.5,再次接近横幅的实际高度。

我知道谷歌还提到了以下内容

  1. 对于高度在 400 到 720 之间的设备,使用高度为 50 的广告
  2. 对于高度超过 720 的设备,使用高度为 90 的广告。

但是,我相信 400 和 720 也可能以 dp 表示?即 mdpi 设备中的 400 像素。您的 Nexus 4 是 xhdpi 设备 (320 dp),高度为 1280 像素,则与高度 640 像素的 mdpi 设备相同,属于广告高度 50 dp 的范围。

最重要的是,你的计算似乎是有效的。坚持第一组规则,您应该会看到一致的结果。