Как я могу указать положение видео просмотра?(вверху слева, вверху справа, внизу слева ... и т. д.) - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть VideoView, который я знаю, как центрировать его на экране, но теперь мне нужно динамически (java-код, а не xml-код) указать положение на экране.

Это мой фактический код:

    VideoView vv = new VideoView(this);
    this.setContentView(vv);
    android.widget.FrameLayout.LayoutParams vvParams = (android.widget.FrameLayout.LayoutParams) vv.getLayoutParams();
    vvParams.gravity=17; //gravity 17 = center horizontal & vertical
    vvParams.width=150;
    vv.setLayoutParams(vvParams);        
    String fileName = "android.resource://" + getPackageName() + "/" + R.raw.v;
    vv.setVideoURI(Uri.parse(fileName));
    vv.start();

Это возможные позиции, которые я хочу указать:

(вертикальное / горизонтальное)

  • вверху слева, вверху по центру, вверху справа
  • в центре слева, в центре в центре, справа в центре
  • внизу слева, внизу в центре, внизу справа

Как динамически определить эти возможности с помощью Java-кода?

1 Ответ

3 голосов
/ 29 ноября 2011

Сделайте ваш VideoView дочерним по отношению к RelativeLayout, а затем обновите LayoutParams следующим образом:

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams();

// Horizontal alignment - choose as appropriate
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
//lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
//lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

// Vertical alignment - choose as appropriate
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
//lp.addRule(RelativeLayout.CENTER_VERTICAL);
//lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

vv.setLayoutParams(lp);
...