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)
您提供的链接表示智能横幅的高度为
我们就拿你举的两个例子来说吧。
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,再次接近横幅的实际高度。
我知道谷歌还提到了以下内容
但是,我相信 400 和 720 也可能以 dp 表示?即 mdpi 设备中的 400 像素。您的 Nexus 4 是 xhdpi 设备 (320 dp),高度为 1280 像素,则与高度 640 像素的 mdpi 设备相同,属于广告高度 50 dp 的范围。
最重要的是,你的计算似乎是有效的。坚持第一组规则,您应该会看到一致的结果。
| 归档时间: |
|
| 查看次数: |
8204 次 |
| 最近记录: |