Drawable简介之-------shape

    xiaoxiao2026-02-03  2

    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的宽度和高度

    最新回复(0)