J'essaie de faire en sorte que VideoView apparaisse en mode plein écran:
public class ViewVideo extends Activity {
private String filename;
private static final int INSERT_ID = Menu.FIRST;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.gc();
Intent i = getIntent();
Bundle extras = i.getExtras();
filename = extras.getString("videofilename");
VideoView vv = new VideoView(getApplicationContext());
setContentView(vv);
vv.setVideoPath(filename);
vv.setMediaController(new MediaController(this));
vv.requestFocus();
vv.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, 0,"FullScreen");
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case INSERT_ID:
createNote();
}
return true;
}
private void createNote() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
La vidéo est en cours de lecture de sdcard. La seule chose est que lorsque je clique sur le bouton de menu en plein écran, l'application "s'arrête de manière inattendue".
S'il vous plaît aidez-moi, comment faire pour que la vidéo fonctionne en plein écran? Merci d'avance.
lorsque vous cliquez sur un élément de menu. vous devez commencer une nouvelle activité. pour cette activité, vous devez définir l'attribut theme dans le manifeste. définir cette valeur qui est
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
c'est tout.
Pas besoin de code pour lire une vidéo en mode plein écran
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<VideoView Android:id="@+id/myvideoview"
Android:layout_width="fill_parent"
Android:layout_alignParentRight="true"
Android:layout_alignParentLeft="true"
Android:layout_alignParentTop="true"
Android:layout_alignParentBottom="true"
Android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
C'est peut-être parce que vous devez ajouter le code suivant:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
avant setContentView(your_content_view)
pour vous débarrasser de la barre de titre de l'application. Je sais que sa réponse est très tardive, mais quelqu'un pourrait la trouver utile.
Grâce à mon expérience, vous ne pouvez utiliser la vue de mise en page relative que pour que votre vidéo soit étirée en portrait et en paysage. La vue en disposition linéaire ne peut étirer que la vidéo sur Paysage, vous pouvez essayer la vue sans écrire de code et prouver ma théorie
Mise en page de portrait
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="center"
Android:background="@Android:color/black">
<VideoView
Android:id="@+id/video_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="center" />
</FrameLayout>
Paysage mise en page
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@Android:color/black">
<VideoView
Android:id="@+id/video_view"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="center"/>
</FrameLayout>
Okey, Essayons comme ça, c'était approprié pour mon plein écran.
Android:theme="@Android:style/Theme.Translucent.NoTitleBar.Fullscreen"