2012-03-26 2 views
0

Ich habe ähnliche Fragen untersucht, aber es geht mehr darum, wie die Anzeigen mit dieser neuen Admob - Version geschaltet werden. Ich bekomme Anzeigen, damit dies nicht mein Problem ist. Mein Problem ist, dass Anzeigen in der Unten auf dem Bildschirm, wenn die App den Inhalt auf dem Bildschirm erweitert, verschwindet die Anzeige, da sie unter den gesamten Inhalt fällt. Meine Lösung ist es, die Adview auf den Bildschirm zu platzieren und auf diese Weise, egal wie viel Inhalt auf dem Bildschirm ist, wird die Adview sichtbar sein! Ich konnte dies schon früher erreichen, als die Adview in meine XML-Datei eingebettet wurde, aber nach dem Admob-Tutorial, das du nicht mehr in die XML-Datei legst. Wie kann ich die Anzeige auf dem MainLayout platzieren? Hier ist der Code, den ich versucht habe.Android Admob 4.3.1 Wie kann ich das adView oben auf dem Bildschirm anzeigen lassen?

LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
    adView = new AdView(this, AdSize.BANNER, "my code"); 
    layout.addView(adView); 
    AdRequest r = new AdRequest(); 
    adView.loadAd(r); 
    // this is what I try to get it on top of the screen, but is not working 
    adView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); 
    adView.bringToFront(); 

das alles ist, da ich nichts zu dem XML getan haben, zeigt, ist nach wie vor die adview im Boden, so wie kann ich es auf dem oberen Teil des Bildschirms bekommen? Danke

Antwort

3

Ihr Code setzt die Schwerkraft des AdView, aber das AdView ist innerhalb eines LinearLayout. Platzieren Sie das LinearLayout an der Stelle, an der es angezeigt werden soll.

+0

Das funktionierte, habe ich ein neues leeres Linearlayout auf alle meine XML-Inhalte hinzugefügt und meinen Code direkt zu diesem Linearlayout! danke – zvzej

1

Hier ist die documentation für, wie Sie Ihr Banner in XML in 4.3.1 hinzufügen.

Wenn Sie es noch in Code zu tun, versuchen Sie ein RelativeLayout Ihres Top-Level-Layout zu machen und diesen Code verwenden:

adView = new AdView(this, AdSize.BANNER, "my code"); 
AdRequest r = new AdRequest(); 
adView.loadAd(r); 
RelativeLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.FILL_PARENT); 
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
layout.addView(adView, params); 
+0

Ich habe diesen Ansatz nicht überprüft, da das Oberteil funktionierte, aber solide auch klingen! Danke – zvzej

+0

Kein Problem. Ich erkannte, dass dieser Code die Anzeige am unteren Bildschirmrand ausrichten würde, nicht an der Spitze. LinearLayout ist in Ordnung, wenn Sie die Anzeige ganz oben verwenden möchten, da Sie die Anzeige zuerst platzieren können. Es gibt jedoch keine gute Möglichkeit, ein Element mit LinearLayouts am unteren Bildschirmrand auszurichten. Dort würde ein RelativeLayout (und dieser Code) ins Spiel kommen. –

+0

Das ist gut zu wissen, danke für den Tipp! – zvzej

0

Wenn Sie die Ansicht, fügen sie mit einem Index. Dies funktioniert für mich:

layout.addView(adView, 0);