[Android]Shape Drawable

ShapeDrawable可以理解为通过颜色来构造的图形

[Android]Shape Drawable_第1张图片

 

 


    
    
    
   

各个属性的含义

android:shape

表示图片的形状,有四个选项:rectangle(矩形)、oval(椭圆)、line(横线)和ring(圆环),它的默认值是矩形。另外line和ring这两个选项必须要通过标签来指定线的宽度和颜色等信息。

针对ring这个形状,有5个特殊的属性:android:innerRadius、android:thickness、android:immerRadiusRatio、android:thicknessRatio和android:useLevel,它们的含义如表所示。

Value Desciption
android:innerRadius 圆环的内半径,和android:innerRadiusRatio同时存在时,以android:innerRadius为准
android:thickness 圆环的厚度,即外半径减去内半径的大小,和android thicknessRatio同时存在时,以 android:thickness为准
android:innerRadiusRatio 内半径占整个Drawable宽度的比例,默认值为9。如果为n,那么内半径-宽度/n
 
android:thicknessRatio 厚度占整个Drawable宽度的比例,默认值为3.如果为n,那么厚度-宽度/n
android:useLevel 一般都应该使用false,否则有可能无法到达预期的显示效果,除非它被当作LevelListDrawable 来使用

表示shape的四个角的角度。它只适用于矩形shape,这里的角度是指圆角的程度,用ps来表示,它有如下5个属性:
android:radius——为四个角同时设定相同的角度,优先级较低,会被其他四个属性覆盖:
android:topLeftRadius——设定最上角的角度;
android:topRightRadius——设定右上角的角度;
android:bottomLeftRadius——设定最下角的角度;
android:bottomRightRadius——设定右下角的角度。

它与标签是互相排斥的,其中solid表示纯色填充,而gradient则表示渐变效果,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(扫描线渐变)三种,其中默认值为线性渐变。


这个标签表示纯色填充,通过android:color即可指定shape中填充的颜色。

Shape的描边,有如下几个属性:
android:width——描边的宽度,越大则shape的边缘线就会看起来越粗;
android:color—描边的颜色:
android:dashWidth——组成虚线的线段的宽度:
android:dashGap——组成虚线的线段之间的间隔,间隔越大则虚线看起来空隙就越大

表示包含它的View的空白,有四个属性:android:left、android:top、android:right和android:bottom。

shape的大小,有两个属性:android:width和android:height。标签设置的宽/高就是ShapeDrawable的固有宽/高,但是作为View的背景时,shape还会被拉伸或者缩小为View的大小。

你可能感兴趣的:(android,android,studio)