如何解决自定义屏幕使用对话框变暗
| 在Android中,当您弹出对话框时,其后面的屏幕将变暗。有什么方法可以控制外观吗?例如使它变暗或变暗还是使用某种模式?解决方法
是的。您可以控制它。
创建对话框后:
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
lp.dimAmount=0.0f; // Dim level. 0.0 - no dim,1.0 - completely opaque
dialog.getWindow().setAttributes(lp);
更新:您甚至可以在对话框后面添加模糊处理:
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
自API14开始不推荐使用模糊处理:
该常数在API级别14中已弃用。
不再支持模糊。
, 或者,您可以执行以下操作:
dialog.getWindow().setDimAmount(0.5f);
, 此解决方案对我不起作用。还有另一个选项,您可以取消控制调光的标志。这段代码对我有用:
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
, 回答的时间很晚,但我相信随着时间的推移会过时,因此我的回答肯定会对您有所帮助。
首先创建一个对话框:
dialog = new Dialog(ActivityName.this);
dialog .setCancelable(false);
dialog .setContentView(R.layout.dialog_layout);
然后进入该对话框的窗口,并添加一个名为FLAG_DIM_BEHIND的标志,最后在屏幕上设置暗淡量。
Window window = dialog.getWindow();
if(window != null){
window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); // This flag is required to set otherwise the setDimAmount method will not show any effect
window.setDimAmount(0.5f); //0 for no dim to 1 for full dim
}
然后显示您的对话框,
dialog.show();
在关闭对话框之前,请清除标志:
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
然后关闭:
dialog.dismiss();
, 以下参数在Android 5.1上对我有用
WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.WRAP_CONTENT,WindowManager.LayoutParams.TYPE_PHONE,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_DIM_BEHIND,PixelFormat.TRANSLUCENT);
params.dimAmount = 0.65f;
可以将参数分配给对话框。
dialog.getWindow().addContentView(view,params)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。