2016-04-23 3 views
0

Ich bin ein bisschen hilflos mit diesem seltsamen Effekt von AdMob.AdMob Banner erscheint 960x150 statt 320x50 in libGdx - was ist hier falsch?

AdView ist in Code integriert und das Layout und die libGdx-Ansicht sind identisch.

 View view = initializeForView(Engine.createEngine(G.SPRITE_BATCH_SIZE, G.WORLD_SIZE_X, G.WORLD_SIZE_Y, MainMenuScreen.class, 
     "backgrounds/loadingtransition.png", Engine.TRANSITION_BOTTOM_LEFT), config); 

    relativeLayout.addView(view); 

    AdView adView = new AdView(this); 

    RelativeLayout.LayoutParams adParams = 
     new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT); 

    adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    adParams.addRule(RelativeLayout.CENTER_HORIZONTAL); 

    adView.setAdSize(AdSize.BANNER); 
    adView.setAdUnitId(getString(R.string.banner_ad_unit_id)); 

    relativeLayout.addView(adView, adParams); 

    setContentView(relativeLayout); 

    AdRequest adRequest = new AdRequest.Builder().build(); 
    adView.loadAd(adRequest); 

Zuerst füge ich die Ansicht von libGdx init hinzu, dann erstelle ich das adView, das oben zentriert ist. Die AdSize ist BANNER.

Wenn ich das Spiel zu starten, funktioniert alles wie es sollte, ein Banner wird angezeigt, aber es ist die Größe ist nicht 320x50, es ist 950x150 mit ist genau 3 mal die Breite und Höhe ... Das ist viel zu groß - ich tue Ich will das nicht.

Kann mir hier jemand helfen, was ich falsch gemacht habe? (Es ist meine erste Erfahrung AdMob, ich bin ziemlich neu auf dem ganzen Zeug auf Android)

The ad says 320x50 but it is 960x150

Antwort

0

Verwendung dieser zwei Option: -

1) adView.setAdSize (AdSize.FULL_BANNER);

2) adView.setAdSize (AdSize.LEADERBOARD);

Referenzdokumentation Link click here

+0

Die beiden sind noch größer. Ich denke, es hat etwas mit dem guten alten "dp" -Gerät Pixel- und Screen-Pixel-Ding zu tun ... Ich benutze jetzt einen SMART_BANNER - das ist viel kleiner. – Grisgram

+0

Da SMART_BANNER und BANNER in normalen Geräten und nicht in großen Geräten verwendet werden, können Sie auch FULL_BANNER oder LEADERBOARD verwenden. –

0

Sie können AdSize auf der Bildschirmauflösungen die Geräte basierend dynamisch laden:

AdSize adSize = AdSize.SMART_BANNER; 
DisplayMetrics dm = getResources().getDisplayMetrics(); 
double density = dm.density * 160; 
double x = Math.pow(dm.widthPixels/density, 2); 
double y = Math.pow(dm.heightPixels/density, 2); 
double screenInches = Math.sqrt(x + y); 
if (screenInches > 8) { // > 728 X 90 
    adSize = AdSize.LEADERBOARD; 
} else if (screenInches > 6) { // > 468 X 60 
    adSize = AdSize.MEDIUM_RECTANGLE; 
} else { // > 320 X 50 
    adSize = AdSize.BANNER; 
} 

adView.setAdSize(adSize);