2017-02-03 100 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。 –

相关问题