我可以弹出窗口,但背景是透明的,我也可以读取其背后活动的内容。我想使背景变暗,以使弹出窗口和较早的活动区分开来。
答案 0 :(得分:1)
您可以通过两种方式进行操作
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);
答案 1 :(得分:0)
从 API 31+ 开始,我们可以使用两个窗口属性来实现这一点。
<item name="android:windowBlurBehindEnabled">true</item>
<item name="android:windowBlurBehindRadius">Xdp</item>
如果您的小马驹要运行类似 Activity Dialog 的活动,那么我们可能想要探索更多标志:
<!-- 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>
我还没有想出什么是复古兼容性的最佳选择,但一旦我找到它,我就会更新帖子。