想美化一下程序里的EditText,发现网上关于美化的文章较少,即使有也大多是直接翻译文档,索性一边研读一边写例子。
先看一下文档对Shape Drawable的描述:
ShapeDrawable
. 一个定义几何形状的XML文件,包括颜色和渐变。创建一个ShpeDrawable对象
和其它drawable文件一样,在drawable目录下创建xml文件,以<shape>为根元素,有两个重要属性
1、xmlns:android="http://schemas.android.com/apk/res/android" 这个不说了,必填
2、android:shape 定义shape的形状有4个值"rectangle"
,"oval"
,"line",
"ring"
分别是矩形、椭圆、线型和环形,一般用的较多的是前两种
shape元素下的其它属性均仅适用于android:shape="ring"时。
Shape的子元素包括
<corners>< gradient>
<padding>
<size>
<solid>
<stroke><corners>指定边角的半径,简单的说,数值越大角越圆,数值越小越趋近于直角,参数为:
- android:radius="integer"
- android:topLeftRadius="integer"
- android:topRightRadius="integer"
- android:bottomLeftRadius="integer"
- android:bottomRightRadius="integer"
android:radius直接指定4个角的半径,另外4个属性可以单独设置4个角的角度
<gradient>的作用是设置颜色渐变,有以下属性
<padding>是为内容或子标签设置边距,4个属性top、bottom、left、right,需要注意的是这个标签的作用是为内容设置与当前应用此shape的View的边距,而不是设置当前View与父元素的边距。
<size>就不用说了,设置背景大小,width和height俩属性。
<solid
>只有一个属性,即color,设置整个背景的颜色,如果已经定义了渐变色,那么这个属性就无效了。
<stroke>
描边,即设置边框
- <span style="font-size:16px;"> android:width="integer" 描边的宽度
- android:color="color" 描边的颜色
- android:dashWidth="integer" 必须与下面的dashGap搭配使用缺一不可,也就是说可以两个属性都不用,如果用,两个都必须得用。那么这哥俩有什么作用呢?
- 原来是可以实现边框分段的效果,前者指定每段的长度后者指定两端之间的间隙或者说距离。
- android:dashGap="integer" 上图说明,如下,灰色部分为背景,黄绿色部分是边框(好恶心的颜色啊,我随便填了几个数出来的)</span>
至此,关于Shape Drawable的大部分功能都介绍完了,快去做出自己的漂亮的UI吧。