【Android开发】关于如何设置弹窗或者布局出现时背景变暗

关于如何设置弹窗或者布局出现时背景变暗

1.设计思路

据我目前了解的一种实现思路,这种变暗可以通过给界面蒙上一层带有透明度的黑色来实现。

2.具体实现

我知道两种实现方法:

  1. 如果你想要给弹出的dialog窗体添加这种效果,可以在你编写的自定义dialog中来设置其背景,这个背景不是dialog的背景,而是后面的部分,通过getWindow()可以获得一个Window对象,通过给他添加属性来设置其背景变暗。我看到的这个代码是通过style.xml中编写的属性组来直接设置到这个window实例上。因为dialog弹窗是原来不存在于这个layout中的组件,是通过在java代码中动态的开启来实现,所以其绑定的layout不一定具有这种属性。
  2. 另一种弹窗的情况是,原来在layout中的组件其visibility为gone,在代码中设置其为可见。其可能没有背景透明度的属性。实现思路是将这个layout放到另一个相关布局中,再给这个布局铺满你想变暗的部分并设置具有透明度的背景。在弹窗显示时直接设置其父类布局的gone或者visible。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中,可以通过设置 Dialog 或 PopupWindow 的背景来实现弹窗背景变暗的效果。具体实现步骤如下: 1. 创建一个布局文件,用于定义 Dialog 或 PopupWindow 的界面。可以在布局文件中添加一个全屏的半透明背景,用于实现背景变暗的效果。 2. 在代码中创建 Dialog 或 PopupWindow 对象,并将上面创建的布局文件设置为其内容。 3. 为 Dialog 或 PopupWindow 设置背景。可以使用 ColorDrawable、GradientDrawable 或者其他类型的 Drawable 来设置背景。在设置背景,可以使用半透明的颜色来实现背景变暗的效果。 4. 显示 Dialog 或 PopupWindow。 下面是一个示例代码,用于实现弹窗背景变暗的效果: ```java // 创建一个用于定义弹窗界面的布局文件 View popupView = LayoutInflater.from(context).inflate(R.layout.popup_layout, null); // 创建 PopupWindow 对象 PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); // 设置背景 ColorDrawable background = new ColorDrawable(Color.parseColor("#80000000")); popupWindow.setBackgroundDrawable(background); // 显示 PopupWindow popupWindow.showAtLocation(parentView, Gravity.CENTER, 0, 0); ``` 在上面的代码中,我们创建了一个 PopupWindow 对象,并将一个布局文件设置为其内容。然后,我们使用 ColorDrawable 来创建一个半透明的背景,并将其设置为 PopupWindow 的背景。最后,我们显示 PopupWindow。这样,当弹窗显示背景变暗,以突出弹窗
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值