tammikuu Posted October 3, 2011 Share Posted October 3, 2011 (edited) bonjour, je souhaiterais lancer une vidéo en plein écran, or même en élargissant la videoview (parametres : fill_parent) la vidéo ne prend que la moitié de l'écran (non centré bien sur). protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.presentation); VideoView view = (VideoView)findViewById(R.id.videoView); view.setMediaController(new MediaController(this)); view.setVideoURI(Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.presentation)); view.requestFocus(); view.start(); j'en profite également pour demander comment ajouter les ascenseurs sur un layout, car j'ai développé mon appli sans tenir compte de la rotation du smartphone et je viens de me rendre compte qu'en paysage la moitié des bouttons on diparus et impossible de descendre sur la vue ... Edited October 3, 2011 by tammikuu Quote Link to comment Share on other sites More sharing options...
chpil Posted October 3, 2011 Share Posted October 3, 2011 Pour les ascenseurs, il te suffit de mettre un ScrollView (ou HorizontalScrollView, selon tes besoins) en racine de ton layout 1 Quote Link to comment Share on other sites More sharing options...
tammikuu Posted October 3, 2011 Author Share Posted October 3, 2011 (edited) j'ai essayé de rajouter : [/size][/size][/size] <VideoView android:layout_width="fill_parent" android:id="@+id/videoView" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true"> </VideoView> et android:theme"@android:style/Theme.NoTitleBar.Fullscreen" rien n'y fait Edited October 3, 2011 by tammikuu Quote Link to comment Share on other sites More sharing options...
chpil Posted October 3, 2011 Share Posted October 3, 2011 Quel est le contenu de ton layout complet ? Quote Link to comment Share on other sites More sharing options...
tammikuu Posted October 3, 2011 Author Share Posted October 3, 2011 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@drawable/background" android:layout_width="fill_parent" android:layout_height="fill_parent"> <VideoView android:layout_width="fill_parent" android:id="@+id/videoView" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true"> </VideoView> </LinearLayout> Quote Link to comment Share on other sites More sharing options...
cyberalternative Posted October 6, 2011 Share Posted October 6, 2011 Bonjour, idem pour moi, impossible de mettre une vidéo en plein écran =S. Quelqu'un a-t-il une solution ? Quote Link to comment Share on other sites More sharing options...
tammikuu Posted October 11, 2011 Author Share Posted October 11, 2011 UP Quote Link to comment Share on other sites More sharing options...
tammikuu Posted October 12, 2011 Author Share Posted October 12, 2011 toujours personne ? Quote Link to comment Share on other sites More sharing options...
cyberalternative Posted October 18, 2011 Share Posted October 18, 2011 Bonjour à vous. J'ai trouvé une solution qui consiste à redéfinir le layout de la videoView. Cela fonctionne très bien chez moi mais je ne sais pas si c'est très propre... mVideoView.layout(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); mVideoView.layout.invalidate(); avec "SCREEN_WIDTH" et "SCREEN_HEIGHT" à remplacer par les valeurs appropriées. Bien à vous. Quote Link to comment Share on other sites More sharing options...
tammikuu Posted October 19, 2011 Author Share Posted October 19, 2011 J'ai résolu le problème en supprimant le linear layout dans le xml, ne laissant que le video view <?xml version="1.0" encoding="utf-8"?> <VideoView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:id="@+id/videoView" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:layout_gravity="center"> </VideoView> Quote Link to comment Share on other sites More sharing options...
cyberalternative Posted October 20, 2011 Share Posted October 20, 2011 Simple curiosité, as-tu utilisé également ma méthode ou la tienne suffit ? Merci. Quote Link to comment Share on other sites More sharing options...
Nietsabe Posted November 3, 2011 Share Posted November 3, 2011 (edited) Bonjour, concernant la video plein écran, le problème se situe dans le principe de fonctionnement même de la classe VideoView, en effet lorsque tu charges en mémoire le XML contenant genre : <VideoView android:id="@+id/video_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_horizontal"/> Android va prendre comme référence les dimensions du layout parent. Jusqu'ici tout ce passe comme prévus. Bémols, lorsque tu charges une vidéo en mémoire, la classe VideoView va procéder à un redimensionnement de la VideoView pour respecter le ratio d'image de la vidéo. La seul solution que j'ai trouvé, c'est de télécharger la classe VideoView : http://grepcode.com/...id+videoView&n= Et d'ensuite l'implémenter dans le projet pour ensuite modifier des morceaux de codes pour lancer une video avec les dimensions désirés. Petit tuto rapide : Téléchargez la classe VideoView et placer la dans un dossier que vous aurez créé dans le dossier src et on y mettra notre propre classe VideoView . exemple : src/com/divers/VideoView.java On modifie la classe VideoView (chercher la méthode OnMeasure qui permet de définir les dimensions ou sinon comme je l'ai fait, créer une méthode scale() avec un appel de layoutParams qui va modifier les dimensions de la VidéoView. Puis, lorsque vous instancierez VideoView, prenez soin de rajouter le import com.divers.*; et non le import d'origine widget.videoview. Enfin, dans votre xml, la déclaration videoview sera écrite comme ceci : <com.divers.VideoView android:id="@+id/video_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center_horizontal"/> Conclusion, android, des fois, ça donne envie de frapper des gens... Je ne comprend toujours pas ce qui a pu motiver google à redimensionner les vidéo une fois chargée en mémoire plutôt que de laisser le choix au développeur via un passage de paramètre ou appel de méthode. je dit ça, car déjà, c'est pénible de mettre en place la méthode que j'ai décrite, mais en plus, vu qu'on instancie une class de notre projet, notre apli n'exploite plus la dernière version de la class widget.VideoView. Conclusion, cette solution marche très bien, mais elle amène aussi son lot de danger concernant M.A.J et compatibilité. Donc prudence. Nietsabe Edited November 3, 2011 by Nietsabe Quote Link to comment Share on other sites More sharing options...
Sylvain-a Posted November 8, 2011 Share Posted November 8, 2011 Et faire créer une classe héritant de VideoView ça pouvait pas marcher? (pure curiosité) Quote Link to comment Share on other sites More sharing options...
Nietsabe Posted November 9, 2011 Share Posted November 9, 2011 Mhn, pour une raison que j'ignore, lorsque je tentais une extends de VideoView, j'avais un crash inexpliqué de l'app, avec des messages dans les log complètements incompréhensible limite ésotérique... Mais c'est tout à fait possible ce que tu dis Sylvain-a, faudrait que je re-test ultérieurement. Et quand ça marchera (si ça marche) je posterais sur le site la solution, car j'ai l’impression que pas mal de monde se pose la question. Nietsabe Quote Link to comment Share on other sites More sharing options...
Sylvain-a Posted November 9, 2011 Share Posted November 9, 2011 Ok, je jetterai un oeil si j'ai le temps un de ces jours pour voir ce que ça donne ^^. Quote Link to comment Share on other sites More sharing options...
takitta Posted June 4, 2013 Share Posted June 4, 2013 salut, svp où je dois mettre le code ce dessous code exactement ? mVideoView.layout(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT); mVideoView.layout.invalidate(); Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.