在Android的XML资源文件中,通过shape标签可以自定义控件的背景样式,其中圆角设置是常用的功能之一。如果需要单独设置底部两个角为圆角,顶部保持直角,不需要给四个角都设置相同的半径,只需要针对性配置底部两个角的属性即可。

shape标签的corners属性说明
shape标签下的<corners>子标签用于配置圆角相关参数,常用的属性分为整体设置和单独设置两类:
- android:radius:统一设置四个角的圆角半径,优先级低于单独设置的角属性
- android:bottomLeftRadius:设置左下角的圆角半径
- strong>android:bottomRightRadius:设置右下角的圆角半径
- android:topLeftRadius:设置左上角的圆角半径
- android:topRightRadius:设置右上角的圆角半径
底部圆角XML配置示例
下面是一个完整的底部圆角shape配置文件,放置在res/drawable目录下,比如命名为bg_bottom_radius.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 设置背景颜色 -->
<solid android:color="#FF6200EE" />
<!-- 设置底部两个角的圆角半径,顶部保持直角 -->
<corners
android:bottomLeftRadius="16dp"
android:bottomRightRadius="16dp" />
</shape>
在布局中引用该背景
配置好shape文件后,可以在布局文件的控件中通过android:background属性引用:
<TextView
android:layout_width="200dp"
android:layout_height="100dp"
android:background="@drawable/bg_bottom_radius"
android:gravity="center"
android:text="底部圆角背景"
android:textColor="#FFFFFF" />
注意事项
在配置圆角属性时需要注意以下几点:
- 如果同时设置了
android:radius和单独角的半径,单独角的设置会生效,整体半径会被覆盖 - 圆角半径的单位建议使用dp,保证在不同屏幕密度下显示效果一致
- 如果只需要底部圆角,不要设置topLeftRadius和topRightRadius,或者将这两个属性设置为0dp
常见扩展场景
如果需要底部圆角同时带边框效果,可以在shape中添加<stroke>标签:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF6200EE" />
<stroke
android:width="2dp"
android:color="#FFBB86FC" />
<corners
android:bottomLeftRadius="16dp"
android:bottomRightRadius="16dp" />
</shape>
Androidshapecorners_radius_bottomxml底部圆角修改时间:2026-07-17 10:18:20