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);