videoviewで不特定多数で渡ってくるmp4の動画プレイヤーを作成しているのですが、
プロジェクトのレイアウト側で幅高さをしていすると縦方向おいて余白がでてしまうので、
videoview側で
imageviewのscaleTypeのCENTER_INSIDEのようなものを使いたいのですが、
そのような機能はなさそうでした。
videoview公式:https://developer.android.com/reference/android/widget/VideoView
videoviewに入るコンテンツによってレイアウトの高さを自動調整するベストな方法ありましたらお教えいただきたいです。
videoviewを貼り付ける場所や高さなどは、xmlレイアウト側で指定する予定です。
以下試したこと
#パターン1
レイアウトを以下のように用意
<FrameLayout android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout>
コードを以下のように用意
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; FrameLayout layout = (FrameLayout)findViewById(R.id.videoView); layout.addView(mVideoView, layoutParams);
結果
videoが表示されず(おそらくvideoviewが0x0となるのだと思います)
#パターン2
レイアウトを以下のように用意
<FrameLayout android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="200dp"></FrameLayout>
コードを以下のように用意
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.gravity = Gravity.CENTER; FrameLayout layout = (FrameLayout)findViewById(R.id.videoView); layout.addView(mVideoView, layoutParams);
結果
videoは表示されたが200dpで固定されるので、小さい動画が来た場合に、高さ方向に余白ができる
#パターン3
レイアウトを以下のように用意
<FrameLayout android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout>
コードを以下のように用意
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(400, 300); layoutParams.gravity = Gravity.CENTER; FrameLayout layout = (FrameLayout)findViewById(R.id.videoView); layout.addView(mVideoView, layoutParams);
結果
レイアウトに横幅いっぱいと指定したが400x300サイズとり横幅いっぱいにならない。
あなたの回答
tips
プレビュー