如何为EditText和Button设置指定样式的彩色边框?
一、搞定EditText的边框
在res/drawable文件夹里新建edittext_border.xml,粘贴以下代码:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 基础边框层 --> <item> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> <!-- 背景色,和EditText背景保持一致 --> <stroke android:width="1dp" android:color="#CCCCCC" /> <!-- 边框颜色,按需调整 --> </shape> </item> <!-- 隐藏左右边框,只保留上下 --> <item android:left="-1dp" android:right="-1dp"> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> </shape> </item> </layer-list>
然后在布局文件里给EditText添加这两个属性:
android:background="@drawable/edittext_border" android:backgroundTint="@null" <!-- 消除默认下划线的颜色干扰 -->
二、制作Button的圆角边框
同样在res/drawable文件夹新建button_border.xml,代码如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 按钮按压状态 --> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#E0E0E0" /> <!-- 按压时的背景色 --> <stroke android:width="1dp" android:color="#CCCCCC" /> <!-- 边框颜色 --> <corners android:radius="8dp" /> <!-- 圆角大小,按需修改 --> </shape> </item> <!-- 按钮默认状态 --> <item> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> <!-- 默认背景色 --> <stroke android:width="1dp" android:color="#CCCCCC" /> <corners android:radius="8dp" /> </shape> </item> </selector>
给Button设置背景,可选去除默认阴影:
android:background="@drawable/button_border" android:elevation="0dp" <!-- 去掉默认阴影,根据需求选择 -->
额外提示
- 如果需要EditText获取焦点时改变边框颜色,可把
edittext_border.xml改成selector结构,添加state_focused状态的配置。 - 背景色要和页面背景保持一致,避免出现突兀色块。
- 边框宽度、颜色、圆角大小都可根据视觉需求自行调整数值。
内容的提问来源于stack exchange,提问作者Ahmet Yılmaz
相关产品推荐
相关产品推荐

