android - 在 Unity for Android 中确定 Admob SmartBanner 的实际高度

标签 android unity3d admob

所以我在我的 Unity 4.6 Android 游戏中实现了 admob 横幅。我在底部有横幅,需要在我的 UI 中说明它。具体来说,我需要知道它到底有多高,但我很难弄清楚。

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

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

例如,我的 Nexus 4 的 DPI 为 320。使用上面的内容,它似乎表明横幅应为 180 像素高,但实际上横幅似乎约为 90 像素高。但是在 Nexus 7(dpi 为 166)上,横幅看起来大约有 120 像素高,而公式表明它应该是 ~93。

所以我想我不知道如何确定横幅的实际高度,而且我还没有找到从 API 获取此信息的方法。我用于调用横幅的代码非常常用:

 string adUnitId = "my_id";

 BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);
 AdRequest request = new AdRequest.Builder().Build();
 bannerView.LoadAd(request);

最佳答案

首先您需要计算谷歌会给您哪些广告(32 或 50 或 90?) 为此,您可以按屏幕尺寸计算。

height/dpi = actual height in inches

所以,谷歌说 720 以上(dp 为 160dpi)是准确的 720/160 = 4.5 英寸高度,高于此高度,广告为 90 像素 (dp!) 低于其 50 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

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

您的信息页面是:

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

关于android - 在 Unity for Android 中确定 Admob SmartBanner 的实际高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761974/

相关文章:

ios - AdMob 同意书未显示?

android - 在另一个 Layout.xml 和 Activity 上设置背景资源

asynchronous - 如何在 Unity3D 中执行异步任务?

android - 如何在通知中处理混合的 RTL 和 LTR 语言?

c# - 不支持异常 : The invoked member is not supported in a dynamic module in C# Unity 5

unity3d - Unity 烘焙光照有 Blob 和立方体

android - 我可以使用 admob 而不在 playstore 上传吗

android - 无法加载原生广告 : 0 Error

android - 在 android 中将谷歌地图缩放到以英里为单位的特定半径

android - 我确定 Android 服务何时启动?