2017-06-06 4 views
0

Meine Videowiedergabe funktioniert gut im Hochformat, aber in Landschaft passt es nicht im Vollbildmodus (ich möchte nicht Layout-Land verwenden). Ich versuche, Ansichten programmgesteuert zu ändern, aber das funktioniert nicht wie erwartet. Ich versuchte, die Auflösung des Geräts unter Verwendung von Code zu erhalten:Video nicht im Vollbildmodus im Querformat für einige Geräte mit Videobild in Android

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 

Testing mit einer Auflösung von 1080 * 1920 der Wert i bin immer für Höhe und Breite von 1080 und 1776 auf den Geräten sind. (Bei einigen Geräten erhalte ich korrekte Werte und Videoview funktioniert in beiden Richtungen fein)

Ich bin vor dem gleichen Problem, die in der unten aufgefordert wurde, Link-

video not taking full screen in landscape mode using videoview android

+0

Haben Sie die Antworten in der von Ihnen erwähnten Frage versucht? – SilverNak

+0

ja, aber es hat nicht funktioniert –

Antwort

0

gelöst durch diesen Code verwenden.

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); 
      } 
Verwandte Themen