2017-06-06 18 views
0

私のvideoviewはポートレートモードで正常に動作していますが、風景ではフルスクリーンに収まらない(レイアウトランドを使用したくない)。プログラムでビューを変更しようとしていますが、これは期待どおりに機能していません。私は、コードの下に使用してデバイスの解像度を取得しようとしました:ビデオがアンドロイドで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 

テストは、デバイス上で解像度1080 * 1920で私は高さと幅のために取得していた値は、それぞれ1080年と1776年です。

(一部のデバイスは、私が正しい値を取得し、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); 
      } 
関連する問題