2012-09-18 4 views
0

J'ai une vue vidéo. Quand je vais toucher cela, il devrait apparaître dans une boîte de dialogue avec une vue presque en plein écran. Pour que je l'ai utilisé le code ci-dessous:Comment afficher une vidéo en plein écran dans Dialog?

mVideoFirst.setOnTouchListener(new OnTouchListener() { 
        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
         mVideoFirst.stopPlayback(); 
         mVideoDialog.show(); 
         mVideoFullScreen.setVideoPath(clip1.getAbsolutePath()); 
         mMediaController3.setMediaPlayer(mVideoFullScreen); 
         mVideoFullScreen.setMediaController(mMediaController3); 
         mVideoFullScreen.requestFocus(); 
         mVideoFullScreen.start(); 
         return false; 
        } 
       }); 

Pour la boîte de dialogue i utilisé le ci-dessous le code java:

mVideoDialog = new Dialog(this); 
    mVideoDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    mVideoDialog.setContentView(R.layout.fullscreen_video); 
    mVideoDialog.setOnKeyListener(this); 
    mVideoFullScreen = (VideoView) mVideoDialog.findViewById(R.id.fullscreen_videoview); 

Et voici mon xml vile pour la boîte de dialogue:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <VideoView 
     android:id="@+id/fullscreen_videoview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" > 
    </VideoView> 

</RelativeLayout> 

maintenant le problème est, la vidéo joue dans le dialogue. Mais la vidéo arrive dans le bon côté du dialogue. Il y a beaucoup d'espace vide dans le côté gauche de la boîte de dialogue. Et le contrôleur se cache derrière le dialogue. Donc, je ne suis pas capable de contrôler la vidéo en utilisant le contrôleur vidéo car je ne peux pas toucher cela.

peut me aider ..

Répondre

0

Je pense avant mVideoDialog.setContentView(R.layout.fullscreen_video); vous devez appeler mVideoDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN) pour faire le plein écran de dialogue.

+0

De cette façon, je tried..but encore il y a une certaine marge de 30 pixels .. –

+1

et le contrôleur vidéo arrive derrière la dialog..how alerte pour surmonter ce problème ?? –

+0

Vérifiez ma réponse à cette question pour corriger le contrôleur vidéo derrière la boîte de dialogue. http://stackoverflow.com/a/25227176/2693789 –

0

Vous devez définir la hauteur et la largeur de la disposition et de la vidéo comme parent de correspondance.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<VideoView 
    android:id="@+id/fullscreen_videoview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" > 
</VideoView> 
+0

Pourtant, il n'arrive pas à l'écran complet .. –

0

Vous pouvez faire comme le contrôle d'affichage vidéo personnalisé ceci:

public class FullScreenVideoView extends VideoView { 
 
    public FullScreenVideoView(Context context) { 
 
     super(context); 
 
    } 
 

 
    public FullScreenVideoView(Context context, AttributeSet attrs) { 
 
     super(context, attrs); 
 
    } 
 

 
    public FullScreenVideoView(Context context, AttributeSet attrs, int defStyle) { 
 
     super(context, attrs, defStyle); 
 
    } 
 

 
    @Override 
 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ 
 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
 
     setMeasuredDimension(widthMeasureSpec, heightMeasureSpec); 
 
    } 
 
}

et utiliser ce contrôle dans votre xml:

<com.yourpackagename.FullScreenVideoView 
 
       android:id="@+id/videoView" 
 
       android:layout_width="fill_parent" 
 
       android:layout_height="fill_parent" />

écran Dialog:

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); 
 
     LayoutInflater inflater = getLayoutInflater(); 
 
     View dialogView = inflater.inflate(R.layout.your_custom_dialog_xml, null); 
 
     dialogBuilder.setView(dialogView); 
 
     final Dialog dialog = dialogBuilder.create(); 
 
     dialog.setCancelable(false); 
 
     dialog.show();

Questions connexes