ShapeDrawable 是一种很常见的Drawable,可以理解通过颜色来构造的图形,它既可以是纯色的图形,也可以是具有渐变的图形
android:shape : 表示图形的形状,有四个选项 : rectange(矩形) ,oval (椭圆) line (横向) ring (圆环) 它的默认值是矩形,另外 line和ring 这两个选项必须要通过
<stroke>标签来指定线宽度和颜色等信息,否则无法达到预期的效果。
针对ring 这个形状 ,有五个特殊的属性
android :innerRadius : 圆环的内半径, 和android : innerRadiusRatio 同时存在 ,以anddroid : innerRadius 为准.
android : thickness : 圆环的厚度,即外半径减去内半径的大小,和android : thicknessRatio 同时存在时,以android :thickness为准.
android :innerRadiuRatio : 内半径占整个Drawable 宽度的比例,默认值是9 ,如果为 n ,那么内半径 = 宽度 =n。
android : thicknessRatio : 厚度占整个 Drawable 的宽度的比例,默认值是3 ,如果为 n ,那么厚度=宽度= n 。
android : useLevel : 一般都应该使用false ,否则 有可能无法达到预期的显示效果,除非它当做LevelListDrawable来使用.
<corner> 表示shape的四个角度。它只适合于矩形的shape ,这里的角度是指圆的程度,用px来表示 。他有五个特性
android : radius : 为四个角度设置相同的角度 ,优先级较低,会被其他是个属性所覆盖。
android : topLeftRadius : 设定最上角的角度
android : topRightRadius : 设定右上角的角度
android : bottomLeftRadius : 设定左下角的角度
android : bottonRigthRadius : 设定右下角的角度
<gradient> 他与<solid>互相排斥 ,其中的solid 表示纯属填充 而 gradient 则表示渐变效果 ,它有如下几个属性
android : angle : 渐变的角度 ,默认为0 其值必须为45的倍数 ,0 表示从左到右,90 表示从上到下
android : centerX : 渐变的中心点的横坐标
android :centerY : 渐变的中心点的纵坐标 ,渐变的中心点会影响渐变的具体效果
android : startColor : 渐变的起始颜色
android : centerColor : 渐变的中间色
android : endColor : 渐变的结束色
android : gradientRadius : 渐变的半径 ,仅当android : type="radial"是有效
android : useLevel : 一般为false 当Drawable 作为StateListDrawable 使用时为true
android : type : 渐变的类别 , 有linear(线性渐变) radial(径向渐变) sweep(扫描线渐变) ,其中默认值为线性渐变
<solid> 这个标签表示纯色填充 ,通过 android: color 即可表示指定 shape中的填充颜色
<stroke> Shape的描边 有如下几个属性
android : width 描边的宽度,越大则Shape的边缘就会看起开越粗
android : color 描边的颜色
android : dashWidth 组成虚线的宽度
android : dashGap 组成虚线之间的间隔 ,间隔越大则表示虚线看起来空隙就越大
<padding> 这个表示空白 ,但是它表示的不是Shape的空白,而是包含它的View的空白,有四个属性
android : left andrlid : top android : rigth android : left
<size> : shape的大小 表示shape的宽度和高度