android中shape,selector,layer-list用法总结

1.先看一个shape的效果

android中shape,selector,layer-list用法总结_第1张图片

,xml代码如下:

    
circle_corner_button_selector.xml:


    
    
    
solid:填充的颜色,corners:圆角属性,stroke:描边的颜色: android中shape,selector,layer-list用法总结_第2张图片 ,关于shape属性,:
  
    //如果当做是LevelListDrawable使用时值为true,否则为false.  
  
        //右下角的圆角半径  
  
      //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果  
  
      
  
      
  
      
  
          //虚线的间隔  
  
下面我们看一个线性渐变例子:
    
shape_button3.xml



    

    

    


定义一个从左到右,起始颜色为holo_green_dark,中间颜色为holo_bulue_dark,结束颜色为holo_red_dark,的渐变色.效果如下: 

还有很多其他属性,大大们可以去试试.

下面结合上面的shape属性,来用selector属性看个例子:

    
button2_shape.xml文件:


    //设置单击时的背景
    //设置正常情况下得背景
,上面有注释,然后看一下单击时的背景shape_border_press.xml,



    
    
    
    
    
    
正常情况下shape_border_nor.xml,



    
    
    
    
    
    
,看一下效果:正常情况下, ,点击时:

在实际开发中,shape属性还有如下设置,

android:state_window_focused="false" 表示默认时情况下的背景图片,此外还可以设置:

android:state_focused="true"表示在获得焦点时的背景图片

android:state_selected="true"表示被选中时的背景图片

android:state_enabled="true"表示响应时的背景图片

.最后我们看一下layer-list用法:

添加一个按钮:

然后看一下shape_button4.xml文件:


    
    
和上面的按钮一样,一个是设置点击时,下面一个就是正常情况下得效果:

看一下step_rzy_bg.xml文件:



    
        
            
        
    
    
        
            
        
    
,先看一下他点击之后的效果:

layer-list也是一种设置背景属性,估计读者也看出来了,layer-list属性是依次叠加的,第一个item里面的stroke的黑色,left=10.0dip,right=5.0dip,表示这一部分不引用shape里面设置的属性,第二个item就是第一个item下显示的效果,

然后看一下shape_button4_nor.xml:



    
        
            
            
        

    
    
        
            
        
    
正常情况的效果: android中shape,selector,layer-list用法总结_第3张图片,和上面的一样,代码就不说了。


      源码(selectorDemo)











你可能感兴趣的:(Android基础)