2012-03-07 6 views
0

Je suis la conception d'une application android contiennent MySurfaceView comprend un canevas pour dessiner des images dans un thread en cours d'exécution par l'application,ajouter d'autres contenus en haut et en bas de MySurfaceView

(mise en page est par défaut main.xml qui crée avec le projet)

mais je dois ajouter une barre/textView en haut et ajouter un AD dans le botton de l'écran. alors comment puis-je faire cela?

ma déclaration est comme ceci:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mySurfaceView = new MySurfaceView(this); 
    setContentView(mySurfaceView);    
} 

Peut être mes informations données ne suffit pas de comprendre la situation, donc si vous trouvez une obscurité dans ma question s'il vous plaît me demander

Merci à l'avance

Répondre

2

Hmm, une possibilité est que vous pourriez simplement le mettre à l'intérieur d'un RelativeLayout ou quelque chose de similaire? Cela suppose que vous ne voulez pas simplement le définir dans le fichier XML qui aurait probablement l'air plus propre. Le code ressemblerait probablement quelque chose comme ça (vous pouvez certainement le rendre plus efficace/il suffit d'utiliser un LinearLayout, je viens de jeter bas la première chose qui est entré dans ma tête):

RelativeLayout layout = new RelativeLayout(this); 
    RelativeLayout.LayoutParams paramsTop = 
      new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 
              RelativeLayout.LayoutParams.WRAP_CONTENT); 
    // Add the textView to the top 
    paramsTop.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); 

    TextView textView = new TextView(this); 
    textView.setText("Hello World"); 
    // Give them id's since we need to position relative to one another 
    textView.setId(1); 
    layout.addView(textView, paramsTop); 


    AdView adView = new AdView(this, AdSize.BANNER, INSERT_ADMOB_ID_HERE); 
    adView.setId(2); 
    RelativeLayout.LayoutParams paramsBottom = 
     new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
             RelativeLayout.LayoutParams.WRAP_CONTENT); 
    // Add the adView to the bottom 
    paramsBottom.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 

    layout.addView(adView, paramsBottom); 
    AdRequest adRequest = new AdRequest(); 
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
    adView.loadAd(adRequest); 


    SurfaceView view = new SurfaceView(this); 
    view.setId(3); 
    RelativeLayout.LayoutParams paramsMiddle = 
      new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, 
              RelativeLayout.LayoutParams.WRAP_CONTENT); 

    // Add the surfaceView in between the textView and the adView 
    paramsMiddle.addRule(RelativeLayout.BELOW, textView.getId()); 
    paramsMiddle.addRule(RelativeLayout.ABOVE, adView.getId()); 
    layout.addView(view, paramsMiddle); 

    setContentView(layout); 
+0

fonctionne parfaitement et exactement ce que je cherchais pour. Merci beaucoup. – fean

+0

une autre question basée sur cette mise en page: si je veux montrer une image dans la section d'annonce (avec la même taille de bannière) jusqu'à ce que l'annonce ne soit pas chargée ou par défaut l'image montrera et quand l'annonce apparaîtra cela est-il possible? – fean