Android控件样式美化之shape的使用
Android提供的控件外观实在不怎么好看,比如一个Button,一个EditText。那么我们可以自定义这些控件的背景来达到美观的效果。
常用的方法就是利用shape,shape听起来是用来改变形状的,它不但可以改变形状,还可以改变好多东西。
下面就开始写一个shape文件吧
我们右击drawable选择new一个Drawable resource file,我们会看到它第二行默认为select,我们改成shape,写好名字后点确定,这样就完成了一个shape文件的创建,我们打开这个文件可以看到文件里面只有shape一个根标签。我们会陆续往里面添加其他标签。
这里先提到shape标签的一个属性:
android:shape=”“
这个属性可以设置控件的形状,他有四个取值:
line 线形
oval 圆形
rectandle 矩形
ring 环形
这个属性也可以不设置,不设置就会是默认形状
接下来介绍shape标签里面可以放置的子标签
当android:shape=”rectangle”或默认形状时有5个子标签可用:
solid 设置填充颜色
padding 设置内容与边界的内边距
gradient 设置渐变颜色
corners 设置圆角
stroke 设置边框
- solid 设置填充色 该标签只有一个属性
* android:color 设置颜色
- padding 设置内容与边界的内边距,可分别设置左右上下距离,有四个属性
* android:left 左边距
* android:right 右边距
* android:top 上边距
* android:bottom 下边距
- gradient 设置渐变颜色,这个标签属性比较多
* android:type 设置渐变类型
取值有如下三个
line 线性渐变
radial 放射性渐变
sweep 扫描渐变
* android:startColor 设置渐变开始的颜色
* android:endColor 设置渐变结束的颜色
* android:centerColor 设置渐变中间的颜色
* android:angle 渐变的角度,线性渐变时才有效,必须是45的倍数,0表示从左到右,90表示从下到上
* android:centerX 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
* android:centerY 渐变中心的相对X坐标,放射渐变时才有效,在0.0到1.0之间,默认为0.5,表示在正中间
* android:gradientRadius 渐变的半径,只有渐变类型为radial时才使用
* android:useLevel 如果为true,则可在LevelListDrawable中使用
- corners 设置圆角,可用属性有5个
* android:radius 圆角半径,会被下面每个特定的圆角属性重写
* android:topLeftRadius 左上角的半径
* android:topRightRadius 右上角的半径
* android:bottomLeftRadius 左下角的半径
* android:bottomRightRadius 右下角的半径
- stroke 设置边框,有4个可用属性
* android:color 描边的颜色
* android:width 描边的宽度
* android:dashWidth 设置虚线时的横线长度
* android:dashGap 设置虚线时的横线之间的距离
当android:shape=”oval”时有5个子标签可用:
solid 设置填充颜色
padding 设置内容与边界的内边距
gradient 设置渐变颜色
stroke 设置边框
size 设置形状大小
这里新出来了一个标签:
size 设置形状大小,有两个属性可用
* android:width 设置宽度
* android:height 设置高度
当android:shape=”line”时有2个子标签可用:
stroke 设置边框
size 设置形状大小
当android:shape=”ring”时就不止有子标签可以用了,还有一些shape根标签的属性可以用,我们先看看这些属性:
- android:innerRadius 内环的半径
- android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,默认为3,表示内环半径为环的宽度除以3,该值会被android:innerRadius覆盖
- android:thickness 环的厚度
- android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,默认为9,表示环的厚度为环的宽度除以9,该值会被android:thickness覆盖
- android:useLevel 一般为false,否则可能环形无法显示,只有作为LevelListDrawable使用时才设为true
可用子标签:
solid 设置填充颜色
gradient 设置渐变颜色
stroke 设置边框
好了,这些就是我知道的shpae的用法了,以后学到更多的时候还会过来更新~
还没有评论,来说两句吧...