Android资源知识(二)之Shape Drawable的使用

This is a generic shape defined in XML.

这是google官方对资源Shape Drawable的定义,意思就是:这是定义在XML文件中的一类形状。通过Shape Drawable(以下简称Shape)可以使控件四个角变成圆角;设置控件的背景;设置控件内容到控件边界的距离……
    首先,贴出官方语法示例,代码如下:



    
    
    
    
    
    

注意:
1、定义Shape的XML文件要放在路径res/drawable/filename.xml下。**
2、XML文件名“filename”可以被用作资源ID。资源的引用方式如下:
    (1)Java代码里: R.drawable.filename
    (2)XML文件里: @[package:]drawable/filename

一、Shape元素

Shape是根元素,使用方式如android:shape=["rectangle" | "oval" | "line" | "ring"]。其中:
(1)shape=rectangle为矩形,同时也是默认值。
(2)shape=oval为椭圆。
(3)shape=line为水平线条,该值需要和元素配合使用。
(4)shape=ring为圆环。
    如下属性只有当shape=ring时才有效:
(a)innerRadius:内圆环半径大小,默认值为9
(b)innerRadiusRatio:内圆环半径的比率(比例)
(c)thickness:圆环的厚度,即外圆环与内圆环之间的距离,默认值为3
(d)thicknessRatio:圆环厚度的比率(比例)
(e)useLevel:为true时表示使用LevelListDrawable,当shape=ring时须设置为false

二、corners元素

corners可以将矩形变为圆角矩形,该元素只有当shape=rectangle时才有效。radius为矩形4个直角设置圆角时的半径,若用topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius属性设置圆角时,必须为每个属性都赋值且大于1。

三、size元素

size元素是shape的大小,height是高度,width是宽度。

四、solid元素

solid元素用来指定shape的填充色,属性为android:color=颜色值。

五、stroke元素

stroke元素是用来设置shape的描边属性。width是描边的宽度,color是描边的颜色,dashGap是虚线点之间的间隔,dashWidth是虚线的宽度,该属性只有当设置了dashGap属性时才有效。

六、gradient元素

gradient指定shape的渐变色。
(1)angle是渐变角度,0表示从左到右,90表示从下到上,并且,angle的值必须是45的倍数,默认值为0。
(2)startColor为起始颜色,endColor为终止颜色,centerColor取值必须在startColor和endColor之间
(3)type为渐变类型,一共有3种渐变类型,分别是linear,radial,sweep。其中,linear为默认类型,当type=radial时,必须指定gradientRadius属性值,否则将解析出错。
(4)centerX是相对于X轴方向的渐变位置,centerY是相对于Y轴方向的渐变位置,二者的取值为 (0 - 1.0)

七、使用方法

1、在XML文件中的代码如下:



    
    
    

2、在代码中引用

Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

最终效果图如下:


Android资源知识(二)之Shape Drawable的使用_第1张图片
kinbos shape用例.png

你可能感兴趣的:(Android资源知识(二)之Shape Drawable的使用)