6

我想在PopupWindow显示 a 时使背景变暗。就像 Dolphin Browser 一样——

在弹出窗口之前

在显示 PopupWindow 之前查看背景颜色

弹出窗口之后

现在看到 PopupWindow 显示后的背景颜色。

背景颜色比原来的颜色深。那么,我们该怎么做呢?

4

4 回答 4

5

在您的 xml 文件中添加类似这样的内容,其宽度和高度为“match_parent”。

<RelativeLayout
        android:id="@+id/bac_dim_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#C0000000"
        android:visibility="gone" >
</RelativeLayout>

在您的活动 oncreate

//setting background dim when showing popup
back_dim_layout = (RelativeLayout) findViewById(R.id.bac_dim_layout);

最后在您显示弹出窗口时使其可见,并在退出弹出窗口时使其可见。

back_dim_layout.setVisibility(View.Visible);
back_dim_layout.setVisibility(View.GONE);
于 2013-04-08T12:37:45.193 回答
0

如果您的弹出窗口是一项活动,请尝试此代码,那么它将绝对有帮助。在项目的values 文件夹中创建一个 mystyle.xml 文件并进行这些更改。

<resources> 
   <style name="customStyle" parent="@android:style/Theme.Dialog">
     <item name="android:windowBackground">@android:color/transparent</item>
   </style>
</resources>

在menifest.xml中进行此更改

<activity android:name="yourActivity" android:theme="@style/customStyle"></activity>
于 2012-05-10T11:04:39.000 回答
0

如果我没记错的话……你可以用listview创建一个活动……然后把主题作为对话框放在它的清单中,像这样……

 <activity android:theme="@android:style/Theme.Dialog" />

这会使背景变暗..

于 2012-05-10T10:33:11.393 回答
0
fun setBackgroundAlpha(activity: Activity, bgAlpha: Float) {
    val lp: WindowManager.LayoutParams = activity.getWindow().getAttributes()
    lp.alpha = bgAlpha
    activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
    activity.getWindow().setAttributes(lp)
}
于 2020-05-18T12:17:28.843 回答