Android 的selector背景选择器应用

常做android的经常会用到selector,每一个控件,都需要单独的处理,只是依赖android本身的控件实在是太难看了。总结一下android的selector的用法:

首先android的selector是在drawable/xxx.xml中配置的。

先看一下listview中的状态:

XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。

drawable/list_item_bg.xml

   

   

   

   

   

   

        android:drawable="@drawable/pic2" />

   

   

        android:drawable="@drawable/pic3" />

   

   

   

   

  使用些xml文件:第一种是在listview中配置android:listSelector="@drawable/list_item_bg"

或者在listview的item中添加属性android:background=“@drawable/list_item_bg"即可实现,或者在java代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg); 

       ListView.setSelector(drawable);同样的效果。

但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"

使其透明。

 

自定义Button按钮样式。Button样式修改的是Button的背景(Background)属性。
首先写一个定义Button样式的XML文件:

Button的一些背景效果:

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

android:state_enabled是设置是否响应事件,指所有事件


新建Android XML文件,类型选Drawable,根结点选selector,文件名就buton_style吧。
程序自动给我们刚刚建的文件里加了selector结点,我们只需要在selector结点里写上三种状态时显示的背景图片(按下、获取焦点,正常)。
代码如下:
Xml代码 
 
 
     
     
     
  
接下来只要在布局时写Button控件时应用到Button的Background属性即可。
Xml代码 

在上面的源代码基础上,只需要修改button_style文件,同样三种状态分开定义:
Xml代码 
 
 
     
         
                            android:angle="270" /> 
             
             
                            android:right="10dp" android:bottom="10dp" /> 
       
 
   
 
  
     
         
                            android:angle="270" /> 
             
             
                            android:right="10dp" android:bottom="10dp" /> 
       
 
   
 
  
     
         
                            android:angle="180" /> 
             
             
                            android:right="10dp" android:bottom="10dp" /> 
       
 
   
 
  
 
gradient 主体渐变 startColor开始颜色,endColor结束颜色 ,angle开始渐变的角度(值只能为90的倍数,0时为左到右渐变,90时为下到上渐变,依次逆时针类推)
stroke 边框 width 边框宽度,color 边框颜色
corners 圆角 radius 半径,0为直角
padding text值的相对位置

最后,需要在包含button的xml文件里添加两项。假如是main.xml 文件,我们需要在

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