android设置activity透明度之后,视频播放画面黑屏,没有画面,只有声音

最近需要在app中加入夜间模式,本来以为是类似于网易云音乐那种更换暗色皮肤的功能,结果领导说,只是降低一下页面亮度就好了(哈哈哈哈嗝),so,本来考虑用降低系统亮度的方法,结果该方法需要用到WRIT_SETTING权限,并且该权限还属于特殊权限,上架应用市场的时候会被检测到,所以换个思路,就是用了降低页面透明度的方法,效果类似于页面上盖了一层半透明的黑色view,代码如下:

     /**
     * 设置添加屏幕的背景透明度
     *
     * @param bgAlpha 屏幕透明度0.0-1.0 1表示完全不透明
     */
    public void setBackgroundAlpha(float bgAlpha) {
        WindowManager.LayoutParams lp = this.getWindow().getAttributes();
        lp.alpha = bgAlpha;
        if (bgAlpha == 1) {
            this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除  该Flag的话,在有视频的页面上的视频会出现黑屏的bug
        } else {
            this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
        }
        this.getWindow().setAttributes(lp);
    }

然后在各个页面oncreate和onresume回调里根据全局变量判断,进行透明度变更,本来以为已经完成任务了,结果第二天客户提出问题,app内的视频播放没有画面,经过一番倒腾,在activity主题中添加以下代码解决问题:

<item name="android:windowBackground">@android:color/transparent</item>

具体原因还未想清楚,有知道的大佬烦请告知,多谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值