Android - RelativeLayout и LinearLayout - проблема изменения размера VideoView - PullRequest
2 голосов
/ 07 июля 2010

У меня проблема с изменением размера видео, я должен построить макет программно, и вот мой код:

    layout = new RelativeLayout(this);
    top = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
    top.addRule(RelativeLayout.ALIGN_PARENT_TOP);

    RelativeLayout.LayoutParams middle = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    middle.addRule(RelativeLayout.BELOW, myText.getId());

    bottom = new RelativeLayout.LayoutParams( LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
    bottom.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

    layout.addView(myText,top);  
    layout.addView(myVideo,middle);
    layout.addView(myButtons,bottom);

    setContentView(layout);

Корневой макет является относительным макетом. myText - это Textview, который я хочу добавить вверху корневого макета. Далее я хочу добавить VideoView ниже myText. И в нижней части корневого макета, я хочу добавить несколько кнопок.

myVideo - это LinearLayout, определенный следующим образом:

    video = new VideoView(this);

    myVideo = new LinearLayout(this);
    myVideo.setGravity(0x11);
    videoParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    myVideo.setOrientation(LinearLayout.VERTICAL);
    myVideo.addView(video,videoParams);

В портретном режиме видео отображается посередине, причем видео занимает всю ширину и правильную величину высоты. В ландшафтном режиме видео занимает весь экран (что мне и нужно), а myText вообще не отображается.

Спасибо Chris

...