Android VideoView изменить размер в зависимости от каждого устройства
Я играю видео в Android Video view. Вопрос в том, что видео не изменяется в соответствии с соотношением устройств. На больших устройствах это растянуто или в маленьком устройстве это скексы. Есть ли способ сохранить соотношение и заполнить всю ширину, как центр кадрирования.
Я проверил следующие ответы:
Изменить размер видео, чтобы соответствовать VideoView
Android VideoView изменение ориентации с буферизованным видео
Но ничего не работает.
Мой код:
mBinding.videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
mBinding.placeholder.setVisibility(View.GONE);
return true;
}
return false;
}
});
mp.setLooping(true);
}
});
XML:
<VideoView
android:id="@+id/videoView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</VideoView>
1 ответ
Оберните весь XML-макет в RelativeLayout
, затем измените ваш VideoView
пометить как следующее-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<VideoView android:id="@+id/videoView"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>