2017-02-03 15 views
0

Я разработчик iOS, переносящий приложение iOS на Android, так что несите меня. У меня есть VideoView, который действует как «фоновый видео». Все об этом работает правильно - кроме как в портретном виде, так и при изменении ориентации (на портретный вид). В AndroidManifest файла, у меня есть мои настройки деятельности таким образом, чтобы экран ориентация не вызвать раскладку обновления:Android VideoView - сохранение аспект-заливки после изменения ориентации экрана

android:configChanges="orientation|screenSize" 

Это работает правильно; что не работает правильно, это соотношение сторон видео, воспроизводимого в VideoView. Видео искажено, чтобы соответствовать границам портрета, а не обрезать левую и правую стороны, чтобы поддерживать соотношение сторон. Как заставить VideoView «аспект-заполнить» видео в его контейнере? Я должен также упомянуть, что этот VideoView является подпунктом ConstraintView. Здесь применяется XML:

<VideoView 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:id="@+id/videoView2" 
    app:layout_constraintBottom_toBottomOf="@+id/imageView3" 
    app:layout_constraintLeft_toLeftOf="@+id/imageView3" 
    app:layout_constraintRight_toRightOf="@+id/imageView3" 
    app:layout_constraintTop_toTopOf="@+id/imageView4" 
    android:scaleType="centerCrop" 
    android:adjustViewBounds="true"/> 

ответ

0

Вы можете проверить ориентацию программно после изменения ориентации (через) и установите VideoView тип шкалы, соответственно, то, что вы хотите.

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ 
     // set video view configurations to what you want on landscape 
    }else{ 
     // set video view configurations to what you want on portrait 
    } 
} 

О масштабировании вида видео, это еще одна проблема. Проверьте эти ответы для получения дополнительной информации об этом: https://stackoverflow.com/a/7225469/4244598

https://stackoverflow.com/a/12335916/4244598

http://blog.kasenlam.com/2012/02/android-how-to-stretch-video-to-fill.html

+0

У меня есть слушатель для 'onConfigurationChanged()' - какой код изменило бы масштабирование VideoView? –

+0

Я буду работать над этим – Natan

+0

Эта третья ссылка - это именно тот подход, который я пробовал, но мой базовый макет - ConstraintLayout, и я думаю, что это влияет на RelativeLayout, рекомендованный в этом подходе. –