java - 使用叠加层时如何获得更暗的背景?

标签 java android overlay

我正在使用系统覆盖来显示一些内容。但我希望叠加层使背景变暗。我该怎么做?

这就是我想要的:

我是这样得到的:

enter image description here

这是我设置叠加层的代码:

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/

相关文章:

java - 无法在尚未调用 Looper.prepare() android 服务的线程内创建处理程序

android - 使用 Adapter 按升序对 ListView 元素进行排序

iphone - 限制 MKMapView 滚动

java - SharedArray 死锁和引发条件

java - "Connection refused"高速公路 Android 到 Java EE 端点

java - 尝试在 JAVA 中通过 url 下载 html 页面。取而代之的是一些奇怪的符号

c++ - Android NDK r5 不能包含 STL 头文件

android - 架构组件改造和 RxJava 2 错误处理

google-maps - 如何获取您的图像 URL 磁贴? (谷歌地图)

google-chrome - 覆盖 Chrome 扩展?