9

如何在具有白色背景的 Android 中设置 PopupWindow 的样式但仍保留阴影?我正在尝试创建类似 [this][1] 的东西:

客观的

默认情况下,我的 PopupWindow 具有深色背景。所以我将弹出窗口的内容设置为白色背景,这给了我这个

白色内容背景

它有一个阴影,但仍然有黑色“边框”,这实际上只是弹出窗口背景的未覆盖部分。

所以我尝试将弹出窗口背景设置为白色:

popupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE))

这导致了这个

这给出了正确的背景颜色,但也消除了阴影。

那么有什么简单的方法可以保留阴影但将背景设置为白色。还有什么我应该使用而不是 PopupWindow 来创建我想要的东西吗?还是我必须使用 9 补丁之类的?

4

3 回答 3

13

我刚刚结束了使用http://inloop.github.io/shadow4android/创建的 9 补丁

于 2015-03-27T01:24:47.653 回答
4

设置背景后,只需添加海拔。

popupWindow.setElevation(10);

这将在 API21 之后起作用。

于 2017-02-15T03:25:22.627 回答
3

如果没有任何效果,您可以使用以下代码。这将在带有白色背景的 Popupwindow 周围放置一个阴影。我已经在我的应用程序中对其进行了测试。

popupWindow.setBackgroundDrawable(context.getDrawable(android.R.drawable.picture_frame));
于 2018-03-26T00:53:22.790 回答