2014-11-22 6 views
0

Проблема в том, что на разрешении 540x960 (мой телефон) реклама работает хорошо, но в других разрешениях это не так. Это ошибка: «Недостаточно места для показа рекламы». Я думаю, что, вероятно, что-то не так с макетом, но я не знаю, что.AdMob libgdx. Объявления не отображаются

Моего MainActivity:

super.onCreate(savedInstanceState); 

     AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();   
     //initialize(new JumpJackieJump(this), cfg);   

     this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
     //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

     RelativeLayout layout = new RelativeLayout(this);   
     requestWindowFeature(Window.FEATURE_NO_TITLE); //no title is needed   

     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

     adView = new AdView(this); 
     adView.setAdUnitId(ADCODE); 
     adView.setAdSize(AdSize.SMART_BANNER); 

     ad = new InterstitialAd(this); 
     ad.setAdUnitId(FULLADCODE); 

     View gameView = initializeForView(new JumpJackieJump(new RequestHandler(adView, ad), this), cfg);   

     AdRequest adRequest = new AdRequest.Builder().build(); 
     AdRequest fadReq = new AdRequest.Builder().build();   

     adView.loadAd(adRequest);   
     ad.loadAd(fadReq);   

     layout.setPadding(0, 0, 0, 0); 
     layout.addView(gameView);   

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

     adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
     adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);   
     layout.addView(adView, adParams);    

     setContentView(layout);  

     if (!ad.isLoaded()) 
      ad.loadAd(fadReq);   

     ad.setAdListener(new AdListener() 
     { 
      @Override 
      public void onAdClosed() 
      { 
      AdRequest fadReq = new AdRequest.Builder().build(); 
      ad.loadAd(fadReq); 
      } 
     }); 
+0

сделал работу решения? –

+0

Да, это работает;) Спасибо за ответ. – metalcracker

ответ

0

Вы можете динамически загружать adsize на основе экранных разрешений устройств:

 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 = new AdView(this); 
     adView.setAdUnitId(FULLADCODE); 
     adView.setAdSize(adSize); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     adView.loadAd(adRequest); 
+0

Спасибо за ответ, я попробую ваш код, но что с межстраничными объявлениями? – metalcracker

+0

Насколько я знаю, вы не можете контролировать размер межстраничных объявлений. Вы можете устанавливать типы объявлений только в консоли admob –

Смежные вопросы