Dialog播放视频(实现静态画中画效果)

效果图:


java代码:

if(dialog==null){
    dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.dialog_adview);
    dialog.getWindow().setDimAmount(0);
    dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
   
}
Window window = dialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.x = 395;//x,y代表dialog显示的位置
lp.y = 200;
lp.height=190;//dialog的大小
lp.width=300;
window.setAttributes(lp);
dialog.setCanceledOnTouchOutside(false);//防止点击弹框外的区域要能够关闭Dialog
Utils.hideBottomUIMenu();
dialog.show();

//以下是播放视频部分
videoView=(VideoView)dialog.findViewById(R.id.vv_admed);
final String uri = "android.resource://" + MyApplication.currentActivity().getPackageName() + "/" + R.raw.pacify;
videoView.setVideoPath(uri);
videoView.getHolder().setFixedSize(960, 540);
videoView.start();
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

    @Override
    public void onPrepared(MediaPlayer mp) {
        // TODO Auto-generated method stub
        mp.setLooping(true);
    }
});
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {
        // TODO Auto-generated method stub

    }
});

当你的程序是全屏时,防止dialog使你的程序退出影响全屏效果,可以加上下面的代码:

View decorView = dialog.getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值