2017-06-06 58 views
0

我的视频工作正常,在纵向模式,但在横向它不适合全屏(我不想使用布局土地)。我正尝试以编程方式更改视图,但这不像预期的那样工作。我试图让使用下面的代码的设备的分辨率:1080 * 1920我得到了高度和宽度值分别为1080和1776的分辨率的设备上视频没有在横向模式中使用一些设备在Android的使用videoview的设备全屏幕

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
WindowManager wm =(WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 
height = metrics.heightPixels 
width = metrics.widthPixels 

测试。 (对于某些设备,我得到正确的价值观和videoview在两个方向正常工作)

我对着已经要求在下面同样的问题链路

video not taking full screen in landscape mode using videoview android

+0

您是否尝试过您提到的问题中提供的答案? – SilverNak

+0

是的,但没有奏效 –

回答

0

通过使用此代码解决。

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.MATCH_PARENT, 
        RelativeLayout.LayoutParams.MATCH_PARENT 
      ); 
    private void enterFullScreen(){ 
      this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
      mVideoView.setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
          | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
          | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
          | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
          | View.SYSTEM_UI_FLAG_FULLSCREEN 
          | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
      mVideoView.setLayoutParams(layoutParams); 
     } 

    private void exitFullScreen(){ 
       this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
       mVideoView.setSystemUiVisibility(0); 
       isFullScreen = false; 
       mFullScreen.setVisibility(View.INVISIBLE); 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
        layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
        layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_TOP); 
        layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_LEFT); 
        layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
       }else { 
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM,0); 
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP,0); 
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,0); 
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,0); 
       } 
       mFullScreen.setVisibility(View.VISIBLE); 
     enter code here`enter code here` 
       mVideoView.setLayoutParams(layoutParams); 
      } 
相关问题