2014-08-29 4 views
0

Я хочу наложить 2 взгляда.Оверлей взглядов программно RelativeLayout

Мой AdView должен быть «плавающим» над моим GameView.

RelativeLayout layout = new RelativeLayout(this); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); 
    layout.setLayoutParams(params); 

    AdView admobView = createAdView(); 
    layout.addView(admobView); 
    View gameView = createGameView(config); 
    layout.addView(gameView); 

    setContentView(layout); 
    startAdvertising(admobView); 


private AdView createAdView() { 
    adView = new AdView(this); 
    adView.setAdSize(AdSize.SMART_BANNER); 
    adView.setAdUnitId(AD_UNIT_ID); 
    adView.setId(R.id.classic); // this is an arbitrary id, allows for relative positioning in createGameView() 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); 
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); 
    adView.setLayoutParams(params); 
    adView.setBackgroundColor(Color.TRANSPARENT); 
    return adView; 
} 

private View createGameView(AndroidApplicationConfiguration cfg) { 
    gameView = initializeForView(new MyGdxGame(), cfg); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); 
    params.addRule(RelativeLayout.BELOW, adView.getId()); 
    gameView.setLayoutParams(params); 
    return gameView; 
} 

это только задаст игровое представление под рекламой.

Спасибо

редактировать: слишком много кода ...

+0

Так в чем проблема? вы сказали в конце вопроса: «Это только задаст игровое поле под рекламным полем» –

+0

Надеюсь, эта картина будет описывать то, что я пытаюсь сделать. Я хочу, чтобы AdView внутри GameView. http://s1.directupload.net/images/140829/w3nkbf2s.jpg – KennyPew

ответ

1

Try:

private View createGameView(AndroidApplicationConfiguration cfg) { 
    gameView = initializeForView(new MyGdxGame(), cfg); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE); 
    gameView.setLayoutParams(params); 
    return gameView; 
} 

Update

изменить Также добавляемого заказ:

View gameView = createGameView(config); 
layout.addView(gameView); 
AdView admobView = createAdView(); 
layout.addView(admobView); 
+0

вот этот рекламный показ не будет отображаться ... – KennyPew

+0

@KennyPew Какой вид вы добавляете сначала к макету? попробуйте добавить 'gameView' сначала, а затем' adView'. –

+0

AdView, я отредактировал мое первое сообщение – KennyPew