Android VideoView:视频视图在对话框视图中更暗

Jas*_*ers 21 android dialog android-videoview

大家好我在对话框视图中嵌入视频视图时遇到问题

一切正常,但对话框中显示的视频要深得多,如果在活动的其余部分显示

有任何想法吗 ?

这是一些代码

button1main.setOnClickListener(new OnClickListener() {

                public VideoView videoView = null;
                @Override
                public void onClick(View v) {
                    //set up dialog
                    Dialog dialog = new Dialog(CustomDialog.this);
                    dialog.setContentView(R.layout.maindialog);
                    //dialog.setTitle("This is my custom dialog box");
                    dialog.setCancelable(true);


                    this.videoView = (VideoView) dialog.findViewById(R.id.video);
                    VideoPlayer vp = new VideoPlayer(this.videoView, null);
                    vp.playVideo();

                    //set up button
                    Button button = (Button) dialog.findViewById(R.id.Button01);
                    button.setOnClickListener(new OnClickListener() {
                    @Override
                        public void onClick(View v) {
                            finish();
                        }
                    });
                    //now that the dialog is set up, it's time to show it    
                    dialog.show();
                }
            });
Run Code Online (Sandbox Code Playgroud)

spa*_*ist 62

它似乎VideoView变得暗淡,因为它是在窗口后面创建的.Jason Rogers解决方案有效,但意味着对话框后面的区域不会变暗.

我用了

mVideoView.setZOrderOnTop(true);
Run Code Online (Sandbox Code Playgroud)

把它VideoView带到前面,这样它就不会变暗,但是对话框后面的所有东西都会变暗.


Jas*_*ers 18

我实际上找到了解决方案(至少在我的情况下)

它似乎是一个来自android的错误,在Dialog后面创建视频视图,当对话框打开时,它会使背景视图变暗,包括视频

我应用的"快速修复"是

WindowManager.LayoutParams a = dialog.getWindow().getAttributes();
a.dimAmount = 0;
dialog.getWindow().setAttributes(a);
Run Code Online (Sandbox Code Playgroud)

它们可能是一个解决方案更好的解决方案,比如传递对话框的上下文而不是使用相同的上下文来创建对话框和视频视图(如果我得到了时间,我会稍后检查)