2022-05-29

/**
* @param view Surface 显示视频的控件
* @param videoWidth 视频的宽
* @param videoHeight 视频的高
**/
private void resetSurfaceSize(final View view, int videoWidth, int videoHeight) {
ViewGroup parent = (ViewGroup) view.getParent();
int width = parent.getWidth();
int height = parent.getHeight();
if (width > 0 && height > 0) {
final FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
if (videoWidth > width || videoHeight > height) {
float scaleVideo = videoWidth / (float) videoHeight;
float scaleSurface = width / height;
if (scaleVideo > scaleSurface) {
params.width = width;
params.height = (int) (width / scaleVideo);
params.setMargins(0, (height - params.height) / 2, 0, (height - params.height) / 2);
} else {
params.height = height;
params.width = (int) (height * scaleVideo);
params.setMargins((width - params.width) / 2, 0, (width - params.width) / 2, 0);
}
}
view.setLayoutParams(params);
}

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容