2017-06-06 54 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); 
      } 
相關問題