android开发解决华为手机“屏幕背景透明不兼容”
发布时间:2021-06-18, 04:26:18 分类:React | 编辑 off 网址 | 辅助
正文 720字数 323,835阅读
/**
* 设置添加屏幕的背景透明度
* @param bgAlpha 透明度 0-1
* @param activity
*/
public static void backgroundAlpha(Activity activity,float bgAlpha)
{
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
/*
为适配华为手机,添加以下代码
*/
if (bgAlpha == 1) {
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,在有视频的页面上的视频会出现黑屏的bug
} else {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
}
activity.getWindow().setAttributes(lp);
}
Run code
Cut to clipboard
上述代码中蓝色部分即为兼容代码,亲测可行。有的资料说,将上述代码中lp.alpha换成lp.dimAmount也行。这个大家可以自行验证。
(支付宝)给作者钱财以资鼓励 (微信)→
有过 1 条评论 »
canvas.drawColor(0x7f222222)设置222222号色半透明,目前发现在三星和华为3x上半透明无效,在其他几款手机上半透明可以看到,这是为什么呢