我正在使用系统覆盖来显示一些内容。但我希望叠加层使背景变暗。我该怎么做?
这就是我想要的:
我是这样得到的:
这是我设置叠加层的代码:
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)
}
关于java - 使用叠加层时如何获得更暗的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500204/