android 背景色 中间为透明的圆
时间: 2023-10-06 19:06:43 浏览: 72
Android ListView滑动改变标题栏背景渐变效果
要实现 Android 背景色中间为透明的圆,你可以使用 XML 定义一个 shape,然后通过 LayerDrawable 将其和一个透明的圆形图层组合起来,从而实现中间为透明的圆形背景。
下面是一个示例代码:
1.定义一个圆形的 shape,将其中的颜色设置为需要的背景色,将 corners 属性设置为最大值,即一个极大的值,使其变为一个圆形。
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF0000" />
<corners android:radius="1000dp" />
<size android:width="200dp" android:height="200dp" />
</shape>
```
2.定义一个透明的圆形图层,将其作为第二个图层添加到 LayerDrawable 中。
```xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@android:color/transparent" />
<size android:width="200dp" android:height="200dp" />
</shape>
```
3.使用 LayerDrawable 将两个图层组合起来,将圆形的 shape 设置为第一个图层,透明的圆形图层设置为第二个图层。
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/circle_background" />
<item android:drawable="@drawable/circle_transparent" />
</layer-list>
```
在代码中,你可以将这个 LayerDrawable 设置为 View 的背景,即可实现中间为透明的圆形背景。
```java
// 获取 LayerDrawable 资源
LayerDrawable layerDrawable = (LayerDrawable) getResources().getDrawable(R.drawable.circle_layer);
// 设置为 View 的背景
view.setBackground(layerDrawable);
```
这样就可以得到一个 Android 背景色中间为透明的圆形背景了。
阅读全文