2017-06-06 1 views
0

Mon visiogramme fonctionne correctement en mode portrait, mais en mode paysage, il ne convient pas en mode plein écran (je ne souhaite pas utiliser layout-land). J'essaye de changer des vues par programme mais ceci ne fonctionne pas comme prévu. J'ai essayé d'obtenir la résolution de l'appareil en utilisant le code ci-dessous:La vidéo ne passe pas en plein écran en mode paysage pour certains appareils utilisant l'affichage vidéo en 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 

Test sur les appareils avec une résolution 1080 * 1920 la valeur je reçois est 1080 et 1776 respectivement pour la hauteur et la largeur. (Pour certains appareils, je reçois des valeurs correctes et VideoView fonctionne très bien dans les deux orientations)

Je suis confronté au même problème qui a été posée dans le ci-dessous LINK-

video not taking full screen in landscape mode using videoview android

+0

Avez-vous essayé les réponses fournies dans la question que vous avez mentionnée? – SilverNak

+0

oui mais ça n'a pas marché –

Répondre

0

Résolu en utilisant ce code.

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