我是iOS开发人员将iOS应用程序移植到Android,所以请耐心等待。我有一个VideoView作为"视频背景"。关于它的一切都正常工作 - 纵向视图和方向更改(纵向视图)除外。在AndroidManifest文件中,我进行了活动设置,以便屏幕方向不会触发布局刷新:
android:configChanges="orientation|screenSize"
这是正常的;无法正常工作的是VideoView中正在播放的视频的宽高比。视频倾斜以适合纵向边界,而不是裁剪左右两侧以保持纵横比。如何强制VideoView进行" aspect-fill"它里面的视频容器?我还要提一下,这个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 :(得分:0)
您可以在方向更改后以编程方式检查方向(通过onConfigurationChanged()
),并根据需要设置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