NativeExpressAdView устанавливает adSize для работы со всеми размерами

Я внедряю нативные экспресс-объявления в свое приложение, и у меня возникла проблема с настройкой ширины объявления. В то время как высота довольно прямолинейна, ширина доставляет мне проблемы:

Я пробовал настроить так:

   adView.setAdSize(new AdSize((int) (getResources().getConfiguration().screenWidthDp - (getResources().getDimension(R.dimen.margin) / getResources().getDisplayMetrics().density)), 80));

Поскольку объявления содержатся в LinearLayout, для которого заданы поля, я не могу использовать FULL_WIDTH, поэтому мне нужно вычислить ширину в коде.

Теперь проблема в том, что ширина неверна на всех размерах экрана, в то время как на некоторых она работает нормально, а на других я получаю сообщения типа

«Недостаточно места для показа рекламы. Требуется 315x80 dp, но есть только 310x...."

Как рассчитать ширину, чтобы она правильно масштабировалась на всех размерах экрана и была уверена, что реклама действительно отображается?

ПРИМЕЧАНИЕ: добавление отображается внутри LinearLayout, который может быть либо в обычном файле макета активности, либо в ListView.


person Alin    schedule 26.09.2016    source источник


Ответы (1)


Это потому, что AdSize принимает параметры dp, и вы конвертируете поля в пиксели.

Также помните о любых дополнениях, которые некоторые представления, такие как представления AppCompat, добавляют на одних платформах, а не на других. Например, CardView добавляет отступы по 2 dp с каждой стороны для KitKat и ниже, но не добавляется отступ для Lollipop и выше.

person Steve M    schedule 11.11.2016