xml布局之shape绘制控件圆角,背景,边框等属性

xml中使用shape可以绘制多种控件样式,相比于让UI切图要方便很多:

a,可以缩小app体积;

b,代码控制各种状态的变换更为灵活,且拓展性更好;

c,更为精确,图片的话还可能存在边边角角的地方有锯齿存在等情况

一、圆角背景

 



    
    

    
    
    
    

 

相关属性解释:corners:圆角弧度	solid:里面背景	stroke:外框背景	padding:文字与边框的距离
shape:背景整体类型,取值有rectangle(矩形)	oval(椭圆形)	line(线性)	ring(环形)
效果图:

xml布局之shape绘制控件圆角,背景,边框等属性_第1张图片

 

 
 
 
 

二、两层圆角背景

 


    
    
    
    

 

相关属性解释:solid:里面背景	stroke:外框背景	size:外层背景与里层背景的边距,其中里层背景是覆盖外层背景的

 

效果图:

xml布局之shape绘制控件圆角,背景,边框等属性_第2张图片

 
另外这里纯色的圆使用得比较多,贴一下xml源码:
 


    
    
    
    

效果图:

xml布局之shape绘制控件圆角,背景,边框等属性_第3张图片

三、半圆


    
    

效果图

xml布局之shape绘制控件圆角,背景,边框等属性_第4张图片

四、渐变色

 


    
    

注意:这里endColor在上面

效果图:

xml布局之shape绘制控件圆角,背景,边框等属性_第5张图片

 

 

五、selector实现多种状态的变色

即控件原本是什么背景,点击时是什么背景,获取焦点是什么背景,被选中是什么背景,这个用的比较多
 


    
    
    
    


其中state_selected的取值有true false,另外还有state_pressed state_checked state_selected state_foucused。值得注意的是并不是所有控件都有上面所有属性:

 

六、另外还有一个用的比较多的是在stirng.xml中定义数组,不用笨拙地一个个getString

 
 
 
      
          Mercury  
          Venus  
          Earth  
          Mars  
      

获取方法是:

 
Resources res = getResources () ; 
String[] planets =res.getStringArray(R.array.planets_array);

上面只针对常用的xml控件作列举,更多详细资料可以参考这里

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Android开发)