facebook twitter hatena line email

Android/VideoView/動画にかぶせてボタンを配置

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

動画のボタンを配置するサンプル

上に上3つと下3ボタンが表示される

xmlでレイアウト定義

コード

VideoView videoView = (VideoView)findViewById(R.id.VideoView1);
videoView.setVideoPath("ttps://~test.mp4"); // 1:1でも4:3でも16:9でも表示されることを確認した
videoView.start();

レイアウト


<FrameLayout android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content">
    <VideoView
        android:id="@+id/VideoView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ></VideoView>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ぼたん1"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true">
        </Button>
        <Button
            android:id="@+id/btn2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ぼたん2"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/btn3"
            android:layout_toRightOf="@+id/btn1">
        </Button>
        <Button
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ぼたん3"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true">
        </Button>

        <Button
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ぼたん4"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true">
        </Button>
        <Button
            android:id="@+id/btn5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ぼたん5"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@+id/btn6"
            android:layout_toRightOf="@+id/btn4">
        </Button>
        <Button
            android:id="@+id/btn6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ぼたん6"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true">
        </Button>
    </RelativeLayout>
</FrameLayout>

コードでレイアウト定義

動画の右下にだけ、動画にかぶるようにボタンを表示

// videoView処理
mVideoView = new VideoView(MainActivity.this);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300);
layoutParams.gravity = Gravity.CENTER;
FrameLayout layout = (FrameLayout)findViewById(R.id.videoLayout);
layout.addView(mVideoView, layoutParams);
// ボタンView処理
int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
int MP = ViewGroup.LayoutParams.MATCH_PARENT;
RelativeLayout btnLayout = new RelativeLayout(MainActivity.this);
btnLayout.setLayoutParams(new RelativeLayout.LayoutParams(MP, MP));
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(WC, WC);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
Button btn = new Button(MainActivity.this);
btn.setText("ボタン");
btnLayout.addView(btn, lp);
layout.addView(btnLayout);

参考

http://d.hatena.ne.jp/Korsakov/20110131/1296504108 の7番