2013-07-29 3 views
6

Ich bin derzeit dabei, AdMob in mein Android-Spiel zu integrieren.AdMob Bannergrößen auf Android

Ich habe Schwierigkeiten, intelligente Banner in mein framelayout-basiertes Layout zu integrieren, weil sie unterschiedliche Bildschirmgrößen auf verschiedenen Geräten belegen.

Zum Beispiel, wenn ich ein smart Banner auf meinem Acer A500 (MDPI 1280x800) anzeigen, erhalte ich eine der Größe 1280x90px, während auf meinem Nexus 7 ich eins mit 1279x66px (TVDPI 1280x800) und auf meinem Galaxy Nexus (HDPI 1280x720) mit 1196x64px.

Gemäß der Dokumentation AdMob, das könnte verständlich Verhalten sein, wenn man bedenkt, dass die in der Dokumentation angegebenen Werte sind dp: https://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners

jedoch dieses Verhalten ein großes Problem für mich, da ein smartbanner mit einer Höhe von 90px auf einem 1200x800px MDPI-Bildschirm nimmt viel mehr Bildschirmfläche als ein Smart-Banner mit einer Höhe von 64px auf einem HDPI-Bildschirm (Siehe Screenshots unten).

Also, hier sind meine Fragen: - Wie viel Platz sollte ich mindestens für ein Smart-Banner reservieren? - Hat jemand etwas Ähnliches versucht, und wie sind Sie damit umgegangen?

Hinweis: Leider ist die Verwendung eines anderen Layouts als framelayout im Moment keine Option. Außerdem können XML-Layouts nicht zur Integration der Anzeigen verwendet werden.

Mit besten Grüßen,

Lorenz

Screenshots:

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

+0

http://imgur.com/qGAk77Y,dK3buz2,Gg1hvyu#2 (Nexus 7) http://imgur.com/qGAk77Y,dK3buz2,Gg1hvyu#1 (Galaxy Nexus) - sorry, nicht genug rep um alle Links zu posten – lorenz

Antwort

0
  1. Denken Sie nicht in Bezug auf die Pixel. Denken Sie in Bezug auf dp (Dichte unabhängige Pixel)
  2. Reservieren Sie den größten Platz. ZB 1280dp um 90pd mit einem containing Layout und lassen Sie Ihr AdView darin eingebettet.
1

Wenn Ihr Layout in einer xml definieren, können Sie ein Layout pro Bildschirmgröße (Layout-xlarge/mylayout.xml, Layout-large/mylayout.xml, Layout-normal/mylayout.xml erstellen usw. ..)

Mehr Infos hier: http://developer.android.com/guide/practices/screens_support.html

Sie auf Dichte schaut nicht, weil, eine 10.1" Tablette eine mittlere Dichte aufweist, aber ein 4.3" Telefon mit einer 480x850 Auflösung wird eine hohe Dichte aufweist. Verwenden Sie stattdessen die Bildschirmgröße (xlarge large normal small).

Wenn Sie es programmatisch tun müssen, können Sie die Bildschirmgröße mit dieser bekommen:

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

und vergleichen zu können, Configuration.SCREENLAYOUT_xxx verwenden.