2013-07-29 10 views
6

Obecnie tworzę AdMob w mojej grze na Androida.Rozmiary banerów reklamowych AdMob na Androida:

Mam problemy z integracją inteligentnych banerów z moim układem opartym na framelayout, ponieważ pobierają one różne ilości nieruchomości ekranowych na różnych urządzeniach.

Na przykład, jeśli wyświetlam inteligentny baner na moim Acer A500 (MDPI 1280x800), otrzymuję jeden z rozmiaru 1280x90px, podczas gdy na moim Nexusie 7, otrzymuję jeden z 1279x66px (TVDPI 1280x800) i na moim Galaxy Nexusie (HDPI 1280x720) o rozdzielczości 1196 x 64 pikseli.

Zgodnie z dokumentacją AdMob, które mogą być zrozumiałe zachowanie, biorąc pod uwagę, że wartości podane w dokumentacji są dp: https://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners

Jednak takie zachowanie jest wielkim problemem dla mnie, ponieważ smartbanner o wysokości 90 pikseli na ekranie MDPI o rozdzielczości 1200x800 pikseli zajmuje o wiele więcej powierzchni ekranu niż inteligentny baner o wysokości 64 pikseli na ekranie HDPI (zobacz poniższe zrzuty ekranowe).

Oto moje pytania: - Ile miejsca należy zarezerwować przynajmniej na inteligentny baner? - Czy ktoś próbował czegoś podobnego i jak sobie z tym poradziłeś?

Uwaga: Niestety, użycie układu innego niż framelayout nie jest obecnie możliwe. Ponadto, układy XML nie mogą być używane do integracji reklam.

Pozdrawiam,

Lorenz

ekranu:

http://imgur.com/qGAk77Y (A500)

+0

http://imgur.com/qGAk77Y,dK3buz2,Gg1hvyu#2 (Nexus 7) http://imgur.com/qGAk77Y,dK3buz2,Gg1hvyu#1 (Galaxy Nexus) - Niestety, nie wystarczy rep aby opublikować wszystkie linki – lorenz

Odpowiedz

0
  1. Nie myśleć w kategoriach pikseli. Pomyśl o dp (gęstości niezależne piksele)
  2. Zarezerwuj największą przestrzeń. Np. 1280dp na 90pd za pomocą zawierającego Layout i umieszczonego w nim AdView.
1

Jeśli twój układ jest zdefiniowany w xml, możesz utworzyć jeden układ na rozmiar ekranu (layout-xlarge/mylayout.xml, layout-large/mylayout.xml, layout-normal/mylayout.xml, itp. ..)

Więcej informacji tutaj: http://developer.android.com/guide/practices/screens_support.html

nie patrz na gęstości, bo 10,1" tabletka ma średnią gęstość, ale 4.3" telefon o rozdzielczości 480x850 będzie mieć wysoką gęstość. Zamiast tego użyj rozmiaru ekranu (xlarge large normal small).

Jeśli trzeba to zrobić programowo, można dostać się do rozmiaru ekranu z tym:

Configuration config = activity.getResources().getConfiguration(); 
int screenlayout = config.screenLayout; 

i porównać, użyj Configuration.SCREENLAYOUT_xxx.

Powiązane problemy