前两天公司项目里面需要使用弹出框播放视频控件,一开始,我用的是PupopWindow,然后,将播放器,放到里面去播放,开始没有测试,最后测试发现,根本没有控件显示出来,最后,找到了,dialog的方法可以做到,就做一下笔记,也希望对看到的朋友能有一定的帮助
1、首先定义全局Dialog
private Dialog bannerPicDialog;
2、然后定义方法
/**
* 弹出视频的弹框
*/
private void showVideoBnanner() {
if (bannerPicDialog == null) {
bannerPicDialog = new Dialog(getContext(), R.style.dialog);
Window win = bannerPicDialog.getWindow();
win.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
win.setAttributes(lp);
LayoutInflater inflater = LayoutInflater.from(getContext());
View viewDialog = inflater.inflate(R.layout.popup_pic_video_layout, null);
bannerPicDialog.setContentView(viewDialog);
}
bannerPicDialog.show();
ImageView ivPicClose = bannerPicDialog.findViewById(R.id.iv_pic_close);
ivPicClose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
bannerPicDialog.dismiss();
}
});
}
3、这里有一个style属性的dialog,所以,需要在res的value下面的style属性里面加上下面代码,里面有注释解释每一行的意义
<style name="dialog" parent="@android:style/Theme.Dialog">
<!--Dialog的windowFrame框为无-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--是否显示title-->
<item name="android:windowNoTitle">true</item>
<!--设置dialog的背景,(#00000000)-->
<item name="android:background">@android:color/transparent</item>
<!--显示区域背景是否透明,(#00000000)-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--就是用来控制灰度的值,当为1时,界面除了我们的dialog内容是高亮显示的,dialog以外的区域是黑色的,完全看不到其他内容,系统的默认值是0.5-->
<item name="android:backgroundDimAmount">0</item>
<!--显示区域以外是否使用黑色半透明背景-->
<item name="android:backgroundDimEnabled">true</item>
</style>
4、这样,只要将视频播放控件,放到Dialog的布局中,就可以正常使用了,不用担心出现播放不了的问题,希望这篇文章能对你有所帮助,大神如发现问题,还请批评指正,我会虚心学习,提高自身