次のように設定された VideoView があります。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_centerVertical="true" />
<ProgressBar
android:id="@+id/loader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
ただし、VideoView は親コンテナーの幅と一致し、高さは読み込まれたムービーの縦横比に従って設定されます。
私は正反対のことをしたいと思います。縦横比を維持しながら VideoView を親の高さと一致させたいのですが、ビデオは側面で切り取られます。
親を埋めるために VideoView を伸ばすことができましたが、アスペクト比は維持されません。
別のことは、次のように MediaController を VideoView に追加していることです。
MediaController controllers = new MediaController(this) {
@Override
public void hide() {
if (state != State.Hidden) {
this.show();
}
else {
super.hide();
}
}
};
controllers.setAnchorView(videoView);
videoView.setMediaController(controllers);
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
controllers.show();
}
});
これはうまく機能し、コントローラーは常にオンのままですが、ビデオを配置する場所を計算するときにコントローラーの高さは考慮されません (垂直方向に中央に配置されるため)。
私の2つの質問は次のとおりです。
- VideoView を親の高さと一致させながら、縦横比を維持するにはどうすればよいですか?
- VideoView にコントローラーの高さを考慮させるにはどうすればよいですか?
ありがとう。