我決定在我的應用程序中添加帶有AdMob的SMARTBANNER。 正如從文檔中所述: smart-banners sizes 在Android上,肖像,我保留了50 dp的高度。所以,我只是保留一個空的線性佈局,它爲我工作在過去的應用程序:如何使用SMARTBANNER(AdMob)並確保顯示它
<LinearLayout
android:id="@+id/layoutAd"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:orientation="vertical" />
然後使用方法:
private void createAdView() {
if (C.AD_ON) {
ad_view = new AdView(this, AdSize.SMART_BANNER, C.AD_APPLICATION_ID);
LinearLayout l = (LinearLayout) findViewById (R.id.layoutAd);
l.addView (ad_view);
AdRequest a = new AdRequest();
ad_view.loadAd(a);
}
}
現在,雖然一般這種簡單的方法的工作原理,在此case我收到錯誤:
Not enough space to show ad! Wants: <480, 90>, Has: <480, 50>
??? 480x90? 480x50像素的?在前面的表格中我找不到這些尺寸......它們來自哪裏? 無論如何,該廣告不會顯示。
然後,我試着保留90dp而不是50dp,並且廣告正確顯示,留下了一個空格......猜出......約40dp。
在這一點上出現了一個問題:之前,用我以前的應用程序,一切都在手機上運行。我認爲一切都適應不同的屏幕尺寸和密度。現在我很害怕,實際上我的很多廣告都無法顯示,因爲廣告期望的是90dp而不是50dp,或者其他任何數字。
其實我決定放置SMARTBANNER的唯一原因是我認爲沒有這種問題!
現在...我應該怎麼做才能在每個可能的屏幕上正確地工作,併合理地確信它不會在某些密度或某種尺寸上失效?我應該自己檢測一下我正在運行的設備,然後以編程方式保留50,90或者55 dp。這聽起來很荒唐!
是否有像適用於橫幅的某些「WRAP_CONTENT」這樣的功能,以便我不必手動指定90或50像素,而只是期望顯示正確的橫幅並將佈局設置爲適應它?
謝謝。
這是一個奇怪的情況,上面的代碼應該已經工作。你試過什麼設備? – 2013-02-22 00:00:41