2015-01-04 36 views
4

因此,我在Unity 4.6 Android遊戲中實施了admob橫幅。我有底部的橫幅,並需要在我的用戶界面中進行說明。具體來說,我需要知道它究竟有多高,但我在解決這個問題時遇到了麻煩。在Unity中確定Admob SmartBanner的實際高度

基於該信息中發現here智能橫幅應爲32,50,或90個像素高,這取決於設備的高度。但這似乎並不典型。

一些搜索似乎表明這是因爲密度像素。所以我嘗試使用px = dp *(Screen.dpi/160)來轉換所述的像素高度。因此,例如,如果我確定橫幅高度應該是90像素,則我會使用bannerHeight = 90 *(Screen.dpi/160)。這似乎適用於某些設備,但不適用於其他設備。

例如我的Nexus 4具有320 DPI的使用上面似乎表明旗幟應該是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); 

回答

0

你給的鏈接說,聰明的旗幟將有

  1. 32 DP的用於手機的高度景觀
  2. 50 DP的手機在人像
  3. 90 DP平板電腦在任何一個方向

讓我們帶你給了兩個例子。

Nexus 4的DPI爲〜320 dp。鑑於這是一部手機,它會有一個高度爲50 dp的廣告。 使用公式,它可以達到50 * 320/160 = 100像素(接近您的實際橫幅高度)

我擡頭看的Nexus 7有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也可以用dp表示嗎?即mdpi設備中的400個像素。您的Nexus 4是一款xhdpi設備(320 dp),高度爲1280像素,因此與高度爲640像素的mdpi設備相同,落在廣告高度爲50 dp的範圍內。

底線,您的計算似乎有效。堅持第一套規則,你應該看到一致的結果。

+0

這是有幫助的,謝謝。 –

1

首先你需要計算谷歌會給你哪些廣告(32或50或90?) 爲此,你可以通過屏幕尺寸來計算它。

高度/ DPI =以英寸爲單位的實際高度

所以,谷歌表示上述720(具有160dpi DP)是acctauly 一百六十零分之七百二十○= 4.5英寸的高度,這個高度之上,的廣告是90像素(dp!) 低於50 dp! 400/160 = 2.5,低於此值,廣告將爲32 dp

SO! 如果我有小米mi3與1920x1080 即是, 1920/480dpi = 4英寸高度..這將給我們50 dp的廣告。

與變換的公式DP到像素

PX = DP *(Screen.dpi/160)

50 *(一百六十分之四百八十〇)= 150像素高度的廣告!

對於景觀,你需要爲 「高度」 1080,而不是景觀 使用的1920 1080/480dpi = 2.25的高度,這意味着廣告將成爲32像素DP

其轉換爲:

32* (480/160) = 96 pixels in landscape 

它太糟糕谷歌沒有給出足夠的例子,所以我們可以真正檢查自己。

你的信息頁:

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