弹出窗口的背景变暗或模糊 window
Dim or blur background of popup window
我可以得到弹出 window 但背景是透明的,我也可以阅读它后面 activity 的内容。我想调暗背景,以便弹出窗口和较旧的 activity 得到区分。
您可以通过两种方式完成
1. 通过将具有透明度的背景颜色添加到弹出布局的父级。
示例:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#cc000000">
<YOUR_POPUP_VIEW
.... />
</RelativeLayout>
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.dimAmount = #WHAT_EVER_VALUE_YOU_WANT_TO_KEEP; //Generally in between 0.70f to 0.80f
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(layoutParams);
从 API 31+ 开始,我们可以使用两个 window 属性 来实现。
<item name="android:windowBlurBehindEnabled">true</item>
<item name="android:windowBlurBehindRadius">Xdp</item>
如果您的小马驹是 运行 类似 Activity 的对话,那么我们有更多可能想要探索的标志:
<!-- Removes Window Title. windowActionBar=false is not needed. -->
<item name="windowNoTitle">true</item>
<!-- When enabling Blur, we also need to provide the blur radius. -->
<!-- Only available on Min Sdk 21. -->
<item name="android:windowBlurBehindEnabled">true</item>
<item name="android:windowBlurBehindRadius">12dp</item>
<!-- In case we want our Activity to behave like a Dialog. -->
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:windowIsFloating">true</item>
<!-- We can mix blur + dim or we can just go with blur. This is to remove the dimmed bg. -->
<item name="android:backgroundDimEnabled">false</item>
我还没有想出什么是追溯兼容性的最佳选择,但一旦我找到它,我会更新 post。
我可以得到弹出 window 但背景是透明的,我也可以阅读它后面 activity 的内容。我想调暗背景,以便弹出窗口和较旧的 activity 得到区分。
您可以通过两种方式完成
1. 通过将具有透明度的背景颜色添加到弹出布局的父级。
示例:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#cc000000">
<YOUR_POPUP_VIEW
.... />
</RelativeLayout>
WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); layoutParams.dimAmount = #WHAT_EVER_VALUE_YOU_WANT_TO_KEEP; //Generally in between 0.70f to 0.80f getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); getWindow().setAttributes(layoutParams);
从 API 31+ 开始,我们可以使用两个 window 属性 来实现。
<item name="android:windowBlurBehindEnabled">true</item>
<item name="android:windowBlurBehindRadius">Xdp</item>
如果您的小马驹是 运行 类似 Activity 的对话,那么我们有更多可能想要探索的标志:
<!-- Removes Window Title. windowActionBar=false is not needed. -->
<item name="windowNoTitle">true</item>
<!-- When enabling Blur, we also need to provide the blur radius. -->
<!-- Only available on Min Sdk 21. -->
<item name="android:windowBlurBehindEnabled">true</item>
<item name="android:windowBlurBehindRadius">12dp</item>
<!-- In case we want our Activity to behave like a Dialog. -->
<item name="android:windowCloseOnTouchOutside">true</item>
<item name="android:windowIsFloating">true</item>
<!-- We can mix blur + dim or we can just go with blur. This is to remove the dimmed bg. -->
<item name="android:backgroundDimEnabled">false</item>
我还没有想出什么是追溯兼容性的最佳选择,但一旦我找到它,我会更新 post。