600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android : Dialog中VideoView全屏播放

Android : Dialog中VideoView全屏播放

时间:2018-07-08 21:27:49

相关推荐

Android : Dialog中VideoView全屏播放

Android : Dialog中VideoView全屏播放

前几天公司要求在引导页播放视频,如果跳转到activity去进行播放,再返回时生命周期方法调动会不太好,最后改成了在引导页构建一个Dialog,在Dialog中进行VideoView的全屏视频播放。具体代码如下:

private void playVideo(){View dialogView=View.inflate(MainActivity.this, R.layout.activity_splash_video, null);AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this,R.style.SplashErrorDialogTheme);builder.setView(dialogView);builder.setCancelable(false);final AlertDialog dialog=builder.create();WindowManager.LayoutParams lp = new WindowManager.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);lp.copyFrom(dialog.getWindow().getAttributes());dialog.getWindow().getDecorView().setPadding(0,0,0,0);dialog.getWindow().setAttributes(lp);dialog.getWindow().setWindowAnimations(R.style.AnimSlideBottom);dialog.show();videoView=dialogView.findViewById(R.id.video_view);videoView.setZOrderOnTop(true);Uri uri=Uri.parse("android.resource://" + getPackageName() + "/"+R.raw.startup2);videoView.setVideoURI(uri);videoView.setOnPreparedListener(mp -> {mp.start();mp.setLooping(false);});videoView.setOnCompletionListener(mp -> {if (dialog.isShowing()){dialog.dismiss();}});}

两个style的设置如下:

<style name="SplashErrorDialogTheme" parent="@style/Theme.AppCompat.Dialog.Alert"><item name="android:windowFullscreen">true</item><item name="android:windowIsFloating">true</item><item name="android:windowNoTitle">true</item><item name="android:windowBackground">@android:color/transparent</item><!--动画--><item name="android:windowAnimationStyle"> @style/AnimSlideBottom</item></style><style name="AnimSlideBottom" parent="android:Animation"><item name="android:windowEnterAnimation">@anim/dialog_in</item><item name="android:windowExitAnimation">@anim/dialog_out</item></style>

第二个只是一个动画的设置,就不贴代码了,你们可以改成Android自带动画就可以,比如:

<style name="AnimSlideBottom" parent="android:Animation"><item name="android:windowEnterAnimation">@android:anim/fade_in</item><item name="android:windowExitAnimation">@android:anim/fade_out</item></style>

其实还有一个问题是,在有一些手机上播放视频,状态栏不会覆盖掉,这个问题如果有解决方法希望可以在我这边留言。感谢

注:已解决,设置flags即可。

dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。