在android中常使用shape来作为控件的背景,来实现对控件形状的设计
shape的文件 位于 drawable文件中 在drawable目录下 添加 任意文件名的xml文件(myshape.xml)
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
</shape>
一 绘制圆角(corners标签)
一般文本框 可以绘制为带边框的圆角边框 默认的EditText没提供这样的演示
<!--
radius 设置4个角的半径
其他 4个属性 分别可以单独设置4个角的半径
solid 填充颜色
-->
<corners
android:radius="20dp" />
<solid android:color="@android:color/holo_orange_light"/>
在 布局文件 EditText 设置背景色为当前的myshape
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:background="@drawable/myshap"
android:hint="请输入密码" >
<requestFocus />
</EditText>
效果为:
二 修改边框的样式
默认EditText为 下边框 有条线 样式如下:
如果需要替换该蓝色的线 可以通过shape绘制一条直线 替换它
myshape.xml文件如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!--
solid 填充颜色为#97ec97
size 设置宽度为1000dp 足够大 高度为 1dp的线
-->
<solid android:color="#97ec97"/>
<size android:height="1dp" android:width="1000dp" />
</shape>
在 布局文件 EditText 设置背景色为空(不要背景) 因为要画的是下边框 设置android:drawableBottom 为myshape
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="35dp"
android:background="@null"
android:drawableLeft="@drawable/lock"
android:drawableBottom="@drawable/myshap"
android:hint="请输入密码" >
<requestFocus />
</EditText>
效果如下:
三 全部标签的解释
1 内边距的举例
<padding android:left="50dp" android:top="50dp"
android:right="10dp" android:bottom="30dp"/>
2 填充颜色
<solid android:color="@android:color/holo_orange_light"/>
3 如下表示 添加圆角 android:radius 为四个边的半径
<corners android:radius="20dp"/>
4 如下表示被绘制的图形的宽度和高度 如果绘制的是 文本框的背景 相当于是绘制的文本框的宽度和高度
如果是绘制的某个边框 就相当于边框的宽度和长度
<size android:width="1000dp" android:height="200dp"/>
5 如下表示 描边 边框的颜色和边框的粗细
<stroke android:color="@android:color/holo_green_dark" android:width="10dp"/>
如下表示渐变 android:startColor渐变的开始颜色 android:endColor渐变的结束颜色 android:angle表示渐变的角度
android:angle=0 表示从左往右渐变 逆时针算角度 比如 90度 就是 下往上渐变 180度就是从右往左渐变
<gradient android:startColor="@android:color/holo_blue_bright" android:endColor="@android:color/holo_red_light"
android:angle="90"
/>