应邀前来写这篇文章,此时的我正在回长沙的高铁上,2016年最后诸多不顺,希望2017年能改运,红红火火~~~~
好了,闲话不多说了,下面介绍一下,通过本篇文章你将学到如下知识点
shape的各属性效果以及使用方式
layer-list (shape复杂化叠加使用)组合使用
selector 的常规使用方式
1.shape
顾名思义,shape就是用于定义形状的,他能定义四种形状:矩形,椭圆形,直线,环形。下面统一讲解一下常用的属性,之后附上不同属性对应下的项目效果。
shape内属性有 android:shape=“”,该值有四个,也就是上面提到的四种形状
rectangle:矩形,缺省值,其中包括常用的效果有 直角矩形,圆角矩形
oval:椭圆形,常用于绘制圆形
line:直线,常用于绘制实线和虚线
ring:环形,常用于绘制环形进度条的效果
shape子标签:
solid 设置形状填充属性
padding 设置内容区域与边界间隙
corners 设置圆角属性,只有rectangle的情况下能用
stroke 描边属性
size 表示该shape图形的大小
solid内属性只有 android:color=“”,该值设置形状的颜色
padding内属性有
android:top=“” 顶部间距
android:right=“” 右边间距
android:bottom=“” 底部间距
android:left=“” 左边间距
corners内属性有
android:radius=“” 四个圆角的圆角半径 下面四个特需属性都会将本属性覆盖
android:topLeftRadius=“” 左上角圆角半径
android:topRightRadius=“” 右上角圆角半径
android:bottomLeftRadius=“” 左下角圆角半径
android:bottomRightRadius=“” 右下角圆角半径
stroke 内属性有
android:width=“” 描边宽度
android:color=“” 描边颜色
android:dashGap=“” 当设置虚线时,表示虚线中每段小横线的长度
android:dashWidth=“” 当设置虚线时,表示虚线中横线间隔的距离
size 内属性有
android:width=“” 表示shape的宽度
android:height=“” 表示shape的高度
下面将贴出各种属性下对应的效果,这些是常用的一些属性组合形成的,如有遗漏,大家可以通过不同属性设置达到效果:

2.layer-list
layer-list,表示层级的概念,如果你使用过PS软件进行图片制作修改,那么你就能很容易的懂得,层级也就是所有效果的叠加,比如一个shape不能完全实现你的效果,那么可以尝试使用多个shape进行叠加实现,来个形象点的比如就像布局中的帧布局效果。
3.selector
selector表示的是选择器,常用含义为控件在不同状态下所对应的背景或颜色等,常用的如按钮在通常情况是一种颜色,当按下时变成另外一种颜色等,下面详细介绍下其中的属性
selector下所有子标签
item 表示每一种状态条目 一般由一个状态属性和对应结果属性
item下对应属性
结果属性
android:drawable=“” 背景图片
android:color=“” 背景颜色
状态属性 true或false
android:state_window_focused=“” 窗口是否聚焦
android:state_focused=“” 是否失去焦点
android:state_pressed=“” 是否被点击
android:state_selected=“” 是否被选中
android:state_enabled=“” 是否能响应事件,此处的事件是指所有事件
android:state_checked=“” 是否被单选选中
android:state_checkable=“” 单选是否可选状态
android:state_activity=“” 是否被激活
以上描叙的属性是我们开发中经常使用的,如有其它,请自行了解熟悉。由于该效果需要动态展示,这里就把示例的XML贴出来,大家自己去玩玩就知道了: