android视频帧不会填充横向屏幕
我有一段代码,叫做onConfigurationChanged:android视频帧不会填充横向屏幕,android,orientation,Android,Orientation,我有一段代码,叫做onConfigurationChanged: private void setVideoLayoutParams(){ LinearLayout.LayoutParams params; if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){ // this works as expected showNav
private void setVideoLayoutParams(){
LinearLayout.LayoutParams params;
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){
// this works as expected
showNavigationAndStatusBars();
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
params = new LinearLayout.LayoutParams(size.x, size.x * 9 / 16);
}else{
hideNavigationAndStatusBars();
// this does not work properly
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
params = new LinearLayout.LayoutParams(size.x, size.y);
}
controller.setPauseButtonSize();
Log.d(TAG, "video layout params set : " + params.width + "/" + params.height);
videoFrame.setLayoutParams(params);
}
private void hideNavigationAndStatusBars(){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
private void showNavigationAndStatusBars(){
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(uiOptions);
}
当屏幕旋转到横向时,导航栏和状态栏消失。然而,我的视频框并没有填满屏幕
屏幕右侧的一小部分保持空白,等于导航栏的高度。
屏幕底部与通知栏高度相等的另一小部分保持空白
创建参数时,我的记录器显示1794/1080。当我触摸屏幕时,我记录下视频帧的大小,它显示1794/1009。我猜在这两种情况下都应该显示1800/1080
我做错了什么?将视频视图放在相对布局中,并添加alignparentright、alignparentleft、alignparenttop和alignparentbottom true。它将是完美的。您的布局是这样的,对吗
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
尝试创建xml的横向布局,并按照我说的做。它对我有用,也没用。这可能与我只删除横向中的导航栏和状态栏有关吗?这是匹配父项而不是填充父项,但除此之外,是的
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);
android.widget.LinearLayout.LayoutParams params = (android.widget.LinearLayout.LayoutParams) videoView.getLayoutParams();
params.width = metrics.widthPixels;
params.height = metrics.heightPixels;
params.leftMargin = 0;
videoView.setLayoutParams(params);