Я сталкивался с этой проблемой раньше - нет простого, очевидного или нестандартного (android) способа сделать это.
Из того, что я понимаю, что вы пытаетесь сделать, я похож на center_crop
на ImageView
- правильно? Для этого вы можете использовать внешнюю библиотеку или использовать программное решение с TextureView
(см. Более подробные пояснения ниже)
...
ВАРИАНТ A: Использовать внешнюю библиотеку
для этого доступно более одной сторонней библиотеки ..
Я раньше не использовал эту библиотеку, но я бы пошелс этим, если я был в вашей ситуации прямо сейчас.
Использование :
build.gradle
dependencies {
compile 'com.yqritc:android-scalablevideoview:1.0.4'
}
layout.xml
<com.yqritc.scalablevideoview.ScalableVideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="100dp"
app:scalableType="centerCrop"/>
... или используйте другую опцию ..
Я использовал этот ранее. Однако последнее обновление, которое он видел, было 4-6 лет назад, так что да, не уверен, что вы хотите на это положиться, плюс разработчик говорит, что библиотека больше не поддерживается.
Использование :
<com.dd.crop.TextureVideoView
android:id="@+id/cropTextureView"
android:layout_width="fill_parent"
android:layout_height="100dp"/>
, а затем
TextureVideoView cropTextureView = (TextureVideoView) findViewById(R.id.cropTextureView);
cropTextureView.setScaleType(TextureVideoView.ScaleType.CENTER_CROP);
cropTextureView.setDataSource("http://www.w3schools.com/html/mov_bbb.mp4");
cropTextureView.play();
...
ВАРИАНТ Б: Решить проблему программно
, например, с помощью TextureView
Пожалуйста, обратитесь к этому сообщению здесь для всех деталей. В итоге вы рассчитываете необходимый размер и манипулируете видом…
Android VideoView crop_center