Я пытаюсь интегрировать объявления в свое Android-приложение, используя AdWhirl и AdMob.AdMob через AdWhirl: недостаточно места для показа рекламы! Хочет: 480, 75, Имеет: 320, 52
Сайт AdWhirl дал мне следующий код для использования:
AdWhirlLayout adWhirlLayout = (AdWhirlLayout) findViewById(R.id.layoutAdWhirl);
int diWidth = 320;
int diHeight = 52;
int density = (int) getResources().getDisplayMetrics().density;
int scaledWidth = (int) (diWidth * density);
int scaledHeight = (int) (diHeight * density);
adWhirlLayout.setAdWhirlInterface(this);
adWhirlLayout.setMaxWidth(scaledWidth);
adWhirlLayout.setMaxHeight(scaledHeight);
Это прекрасно работает на некоторых из моих эмуляторов, но когда я пытаюсь некоторые меньшие или старых эмуляторов, я получаю следующее сообщение об ошибке в LogCat:
Not enough space to show ad! Wants: 480, 75, Has: 320, 52
Что я должен делать, если я использую свой код для запроса соответствующего размера объявления, но тогда они не будут показывать, что объявление?
Плотность шкалы 1 (устройство mdpi, очень распространенное), поэтому scaledWidth и scaledHeight были 320 x 50. Устройство было 480 пикселей в ширину, и xml был «fill_parent». Комментируя вызовы setMaxWidth() и setMaxHeight(), эта ошибка исчезла ... Я все еще думаю, что их API - это удар ... не совсем мое решение, но я думаю, что ваш вариант №2 должен работать, чтобы исправить это, Примите этот ответ. –
Думаю, я понял это. Вероятно, вы работали на эмуляторе WVGA800 с плотностью 1,5, но вышеприведенный код переместил его в 1, в результате чего представление было слишком маленьким. Я обновил свой ответ. –
@ Эрик: вы говорите правильно. Просто позвольте мне добавить, что очень сильная проблема заключается в том, что при поднятии предупреждения «Недостаточно места для показа рекламы!». запрос считается onReceiveAd успешным даже не отображаемым, и это нарушает цепочку обратной засыпки, обеспечиваемую уровнем посредничества (в данном случае AdWhirl) – Lisitso