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 设置边框

  1. solid 设置填充色 该标签只有一个属性
    • android:color 设置颜色
  2. padding 设置内容与边界的内边距,可分别设置左右上下距离,有四个属性
    • android:left 左边距
    • android:right 右边距
    • android:top 上边距
    • android:bottom 下边距
  3. 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中使用
  4. corners 设置圆角,可用属性有5个
    • android:radius 圆角半径,会被下面每个特定的圆角属性重写
    • android:topLeftRadius 左上角的半径
    • android:topRightRadius 右上角的半径
    • android:bottomLeftRadius 左下角的半径
    • android:bottomRightRadius 右下角的半径
  5. 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根标签的属性可以用,我们先看看这些属性:

  1. android:innerRadius 内环的半径
  2. android:innerRadiusRatio 浮点型,以环的宽度比率来表示内环的半径,默认为3,表示内环半径为环的宽度除以3,该值会被android:innerRadius覆盖
  3. android:thickness 环的厚度
  4. android:thicknessRatio 浮点型,以环的宽度比率来表示环的厚度,默认为9,表示环的厚度为环的宽度除以9,该值会被android:thickness覆盖
  5. android:useLevel 一般为false,否则可能环形无法显示,只有作为LevelListDrawable使用时才设为true

可用子标签:

solid 设置填充颜色
gradient 设置渐变颜色
stroke 设置边框

好了,这些就是我知道的shpae的用法了,以后学到更多的时候还会过来更新~

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值