2010-07-24 11 views
3

Je veux un TextView sur le dessus et un VideoView ci-dessous. Je veux avoir le VideoView comme centre verical et sous le TextView. J'utilise RelativeLayout.Android - RelativeLayout CENTER_VERTICAL et CI-DESSOUS numéro

Je suis en train de le faire dans le code:

RelativeLayout layout = new RelativeLayout(this); 
TextView tv = new TextView(this); 
tv.setText("Hello"); 
tv.setGravity(Gravity.RIGHT); 
tv.setTextColor(Color.WHITE); 
tv.setId(1); 

RelativeLayout.LayoutParams one = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

one.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
one.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 


RelativeLayout.LayoutParams two = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
two.addRule(RelativeLayout.CENTER_VERTICAL); 
two.addRule(RelativeLayout.BELOW, 1); 

VideoView mVideoView = new VideoView(this); 

layout.addView(tv, one); 
layout.addView(mVideoView, two); 

setContentView(layout); 

Le VideoView obtient placé sous le TextView, mais le VideoView est le centre et non verticale.

Répondre

1

Vous avez créé votre VideoView fill_parent/fill_parent, ce qui lui donne les mêmes dimensions que son parent RelativeLayout. Si elle est aussi grande que le RelativeLayout, le centrage ne peut pas vraiment fonctionner. En outre, vous ne pouvez pas avoir VideoView à la fois sous le TextView et centré verticalement dans le parent; c'est l'un ou l'autre. Au lieu de cela, vous pouvez centrer ViewView et placer le TextView au-dessus.

+0

La raison pour laquelle j'ai utilisé fill_parent/fill_parent pour videoview est que je veux que la vidéo remplisse tout l'espace sous TextView. La vidéo ne va évoluer que jusqu'à ce que son rapport d'aspect le permette, et c'est pourquoi le besoin de centrage, surtout en mode portrait. – Chris