surfaceView设置RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT后竖屏的视频,会挤压成横屏
时间: 2023-12-14 09:36:05 浏览: 128
surfaceview 支持横竖屏切换 视屏适配屏幕
这可能是因为您的视频源的宽高比与您的设备屏幕的宽高比不同。当您将SurfaceView的LayoutParams设置为MATCH_PARENT时,它会填充整个父布局,但是如果视频源与屏幕的宽高比不同,则会出现挤压或拉伸的情况。
为了解决这个问题,您可以尝试使用以下方法之一:
1. 在布局文件中,将SurfaceView的LayoutParams设置为WRAP_CONTENT,并将其放置在一个竖直方向的LinearLayout中。然后,您可以通过旋转LinearLayout来实现横屏显示,同时保持视频的纵横比不变。
2. 在代码中,您可以通过检测设备的方向并根据需要旋转SurfaceView来实现横屏。例如,您可以使用以下代码:
```
int rotation = getWindowManager().getDefaultDisplay().getRotation();
if (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) {
surfaceView.setRotation(90);
}
```
这将在设备旋转时自动调整SurfaceView的方向。请注意,您还需要根据需要调整视频源的方向,以确保它正确地显示在SurfaceView中。
阅读全文