Как разместить adView ниже? - PullRequest
0 голосов
/ 10 мая 2011

Я создаю игру, которая имеет собственный вид, полученный из SurfaceView. и в игре я хочу разместить adView под gameView. но проблема в том, что если я размещу adView ниже gameView, adView не будет отображаться .. Я делаю все макеты в коде, потому что его легче поддерживать ..

вот код ..

Если я размещу adView над gameView, оно будет отображаться

private RelativeLayout layout;   //the gameView container
private LinearLayout mainLayout;  //the main layout
private RocketView rocketView;   //the gameView
private AdView adView;             //the adView
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        mainLayout = new LinearLayout(this);
        mainLayout.setOrientation(LinearLayout.VERTICAL);

        adView = new AdView(this, AdSize.BANNER, "a14d9e9ea3740e8");
        adView.setVisibility(AdView.VISIBLE);
        adView.loadAd(new AdRequest());
        mainLayout.addView(adView);   // -->> here i place the adView first

        layout = new RelativeLayout(this);
        mainLayout.addView(layout);   //--->> then i place the gameView later

        rocketView = new RocketView(this);
        layout.addView(rocketView);
        setContentView(mainLayout);
}

Но если я размещу adView ниже, он не будет отображаться.

private RelativeLayout layout;
private LinearLayout mainLayout;
private RocketView rocketView;
private Launcher launcher;

private AdView adView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        mainLayout = new LinearLayout(this);
        mainLayout.setOrientation(LinearLayout.VERTICAL);

        layout = new RelativeLayout(this);
        mainLayout.addView(layout);

        rocketView = new RocketView(this);
        layout.addView(rocketView);

        adView = new AdView(this, AdSize.BANNER, "a14d9e9ea3740e8");
        adView.setVisibility(AdView.VISIBLE);
        adView.loadAd(new AdRequest());
        mainLayout.addView(adView);
        setContentView(mainLayout);

}

Я думаю, я знаю, что случилось .. после adView загрузите adRequest и получите рекламу, она не растягивается вверху, а растягивается внизу, поэтому она не отображается на экране. но я не знаю, как решить эту проблему. пожалуйста, помогите мне ..

1 Ответ

2 голосов
/ 10 мая 2011

Во-первых, вам не нужен линейный макет, mainLayout. Добавьте как rocketView, так и adView в свой относительный макет. Дайте adView атрибуты align_parent_bottom, wrap_content (height) и wrap_content или fill_parent для ширины. Затем укажите rocketView fill_parent для ширины и высоты, чтобы он был «над» adView.

...