java - 使用叠加时如何获得较暗的背景?
问题描述
我正在使用系统覆盖来显示一些内容。但我希望叠加层使背景变暗。我该怎么做?
这就是我想要的:
这就是我得到的方式:
这是我设置叠加层的代码:
overlay = LayoutInflater.from(this).inflate(R.layout.activity_popup_dictionary, null);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.BOTTOM;
params.x = 0;
params.y = 100;
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(overlay, params);
解决方案
就个人而言,我会通过DialogFragment
执行此代码来实现这一点onStart
;这样您就可以自定义对话框的透明度
dialog.window.apply {
attributes.apply {
dimAmount = 0.50f
flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND
}
setBackgroundDrawable(ColorDrawable(0))
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
setGravity(Gravity.CENTER)
}
推荐阅读
- ios - 颤动的iOS功能背景模式已打开
- javascript - 如何在 Angular 5 规范中为 document.URL 编写单元测试
- python - 在 Django 应用程序中显示特定用户详细信息而不是所有详细信息
- ios - Xcode for Swift 4 中的屏幕时间报告
- c - 从 ARP 数据包打印源和目标 IP 地址
- raku - Perl 6:使用 AT-POS 的可写多维下标访问
- text - 使用记事本删除/或替换为空格->所有字符串以及其中的内容
- javascript - 从 html 调用一个弹出的 javascript
- python - 正确使用 tf.layers.MaxPooling
- html-table - 具有垂直标题和等宽单元格的 HTML 表格