2016-06-29 1 views
0

Je les éléments suivants MainActivity fichier xmlAdView pas Affichage (Peut-être caché derrière d'autres Voir)

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 

    xmlns:ads="http://schemas.android.com/apk/res-auto" 

    android:id="@+id/mainLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.retrochicken.slide.MainActivity"> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="bottom|start" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id"> 
    </com.google.android.gms.ads.AdView> 

</FrameLayout> 

Et puis dans la MainActivity méthode de classe java OnCreate

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

     setContentView(R.layout.activity_main); 

     FrameLayout mainLayout = (FrameLayout) findViewById(R.id.mainLayout); 
     mainLayout.addView(new GamePanel(this)); 

     MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713"); 

     AdView mAdView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     mAdView.loadAd(adRequest); 

     mAdView.bringToFront(); 
    } 

Je suis en train d'avoir mon GamePanel class, qui est un SurfaceView, dessinez une toile sur tout l'écran, mais placez une bannière publicitaire en bas de l'écran. Actuellement, je ne vois rien qui se passe avec les annonces, il pourrait y avoir un autre problème, mais je suppose qu'il est montré derrière ce qui est dessiné par le GamePanel.

EDIT
Je confirme qu'il est une question de l'GamePanel dessin au-dessus du AdView, je crois que ce peut être la façon dont je traitais les méthodes de dessin. Dans GamePanel J'ai une méthode draw(Canvas canvas) qui attire tous les objets du jeu sur la toile, je poster alors la toile à l'écran à l'aide

try { 
       canvas = this.surfaceHolder.lockCanvas(); 
       synchronized (surfaceHolder) { 
        this.gamePanel.update(timeMillis); 
        this.gamePanel.draw(canvas); 
       } 
      } catch(Exception e) { 

      } finally { 
       if(canvas != null) { 
        try { 
         surfaceHolder.unlockCanvasAndPost(canvas); 
        } catch(Exception e) {e.printStackTrace();} 
       } 
      } 

qui est contenu dans une boucle while qui se répète (dans un autre thread) qui contrôle la cadres du jeu.

Répondre

0

D'après les informations here, peut-être vous pouvez essayer

mAdView.setWillNotDraw(false); 
+0

Il n'a pas vu au travail, mais je pense maintenant que c'est une question de comment je dessine ma toile plutôt que de superposition. –

+0

@ wfish454Tutoriels mis à jour la réponse avec quelque chose de nouveau à essayer – jeyoor