1.横竖屏切换问题
问题描述:
网上很多封装的视频播放器,也有横竖屏切换,但是发现在Scrollview中时横屏的高度会无效,因为Scrollview是可滚动控件
解决方案:
1)在切换前记录原始播放器的高度传给播放器如(videoPlayer),并告诉影响播放器全屏显示的其它控件列表(List)和播放器所在的父控件
2)竖屏切横屏,设置播放器的LayoutParams的宽高为屏幕的高宽,Gone掉其它控件,播放器的父控件的margin和padding设置为0
3)横屏切竖屏,恢复保存的原始宽高,显示其它控件,恢复父控件的margin和padding
实例代码如下:
/**
* 竖屏转横屏
*/
public void portrait2landscape(boolean isAuto) {
changeScreen(isFullScreen);
ViewGroup.LayoutParams params = this.getLayoutParams();
params.width = DisplayUtil.getScreenHeight(mContext);
params.height = DisplayUtil.getScreenWidth(mContext);
this.setLayoutParams(params);
if (!isAuto) {
//强制横屏
mContext.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
mContext.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
changeScreenBtn.setImageResource(R.drawable.ic_player_suoxiao);
rlTitile.setVisibility(VISIBLE);
}