android中的shape资源,Android Drawable资源讲解之shape篇

运用好Android的drawable资源,在开发中就可以减少图片的使用量,这样既缩小了app的体积,也省去了设计图片的时间,而且也容易适配不同的屏幕尺寸。

今天首先来讲讲shape资源的使用。

1. Shape的属性介绍

shape共支持四种形状,在根节点通过android:shape=””来定义

rectangle

方形

oval

椭圆形

line

线形,需要节点来定义其属性

ring

环形

我们常用的应该是rectangle和oval形状,我们上个图来看一下总体效果:

device-2017-01-25-161104-169x300.png

其中下面几个属性是环形时才会用到的:

android:innerRadius

尺寸。环内部(中间的孔)的半径,以尺寸值或尺寸资源表示。

android:innerRadiusRatio

浮点型。环内部的半径,以环宽度的比率表示。例如,如果 android:innerRadiusRatio=”5″,则内半径等于环宽度除以 5。此值被 android:innerRadius 覆盖。默认值为 9。

android:thickness

尺寸。环的厚度,以尺寸值或尺寸资源表示。

android:thicknessRatio

浮点型。环的厚度,表示为环宽度的比率。例如,如果 android:thicknessRatio=”2″,则厚度等于环宽度除以 2。此值被 android:innerRadius 覆盖。默认值为 3。

android:useLevel

布尔值。如果这用作 LevelListDrawable,则此值为“true”。这通常应为“false”,否则形状不会显示。当我们要设计一个圆形时必须设置它为false。

2.子节点之实色填充效果

solid节点可以实现形状的填充效果,通过android:color属性设置颜色值,如下示例:

XHTML

android:shape="rectangle">

1

2

3

4

5

6

android:shape="rectangle">

Screenshot_1485307303-169x300.png

3.子节点之渐变填充效果

gradient节点可以实现渐变的填充效果,示例如下:

XHTML

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

1

2

3

4

5

6

7

8

9

10

11

12

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

Screenshot_1485308144-169x300.png

4.子节点之实现边框效果

XHTML

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

android:width="2dp"

android:dashGap="2dp"

android:dashWidth="2dp">

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

android:width="2dp"

android:dashGap="2dp"

android:dashWidth="2dp">

Screenshot_1485308436-169x300.png

各个属性值的解释:

android:color

线框的颜色

android:width

线框的宽度

android:dashGap

如果画虚线框,虚线框的间隙

android:dashWidth

如果画虚线框,虚线框的宽度

5.子节点之实现圆角效果

为了美观,我们在画按钮时都会给按钮背影加个圆角效果,在shape里可以通过corner节点来实现圆角效果,如下所示:

XHTML

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

android:width="1dp">

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

android:shape="rectangle">

android:endColor="#33ddee"

android:centerColor="#eedd33"

android:angle="90"

android:centerX="0.4"

android:centerY="0.4"

android:type="linear">

android:width="1dp">

Screenshot_1485308957-169x300.png

radius用于设置圆角的半径大小,也可以通过android:topLeftRadius,android:topRightRadius,android:bottomLeftRadius,android:bottomRightRadius分别设置四个角的圆角半径大小,比如在实现tab标签头部按钮时,我们可能只需要为左上和右上角设置圆角效果。比如还可以实现一些特殊形状的导航按钮等等。

6.padding节点

padding节点用于设置形状相对于四边的内部间距,可以用于在layer-list中设置阴影的效果。

打赏

f69872ab5631b766bfb8c62b6b7d28fa.png微信扫一扫,打赏作者吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值