popupWindow设置弧形边框
时间: 2023-07-04 07:16:51 浏览: 208
解决Android popupWindow设置背景透明度无效的问题
要为 PopupWindow 设置弧形边框,可以使用 Shape Drawable 和 Layer List Drawable 的组合。首先,创建一个圆角矩形的 Shape Drawable,然后将其添加到一个 Layer List Drawable 中,设置一个背景色和一个边框,最后将该 Layer List Drawable 应用到 PopupWindow 上。
以下是一个示例代码:
1. 创建一个圆角矩形的 Shape Drawable(res/drawable/popup_window_bg.xml):
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp" />
</shape>
```
2. 创建一个 Layer List Drawable(res/drawable/popup_window_border.xml):
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="10dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="10dp" />
<stroke android:color="#cccccc" android:width="1dp" />
</shape>
</item>
</layer-list>
```
3. 在代码中设置 PopupWindow 的背景:
```java
PopupWindow popupWindow = new PopupWindow(context);
popupWindow.setBackgroundDrawable(ContextCompat.getDrawable(context, R.drawable.popup_window_border));
```
以上代码中,ContextCompat.getDrawable() 方法用于获取 Drawable 对象,R.drawable.popup_window_border 是刚才创建的 Layer List Drawable 的资源 ID。
这样就可以为 PopupWindow 设置圆角边框了。注意,这里的圆角半径是 10dp,可以根据实际需求进行调整。
阅读全文