显示弹出窗口时更改背景颜色

时间:2012-05-10 10:24:26

标签: android popupwindow

我希望在显示PopupWindow时使背景更暗。就像Dolphin Browser一样 -

在PopupWindow之前

Look at the background color before the PopupWindow is shown

PopupWindow

之后

And now see the background color after the PopupWindow is shown.

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

4 个答案:

答案 0 :(得分:4)

在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>

在您的活动中创建

//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);

答案 1 :(得分:0)

如果我没有错...你可以使用listview创建一个活动....并将主题作为对话框放在它的清单中......

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

这会使背景变暗..

答案 2 :(得分:0)

如果弹出窗口是一项活动,请尝试此代码,然后它将有所帮助。 在项目的 values folder 中创建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>

答案 3 :(得分: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)
}