`

Android的背景选择器selector

 
阅读更多

 

 

一、selector介绍:    

      存放位置:res/drawable/文件的名称.xml

     1 使用场景:控件不同状态显示不同的样式,这时候就用到selector

     2 item: 每个item表示一种状态(可以几种状态叠加使用)

     3  匹配规则:第一个匹配的状态将会使用,如果第一个没有任何状态则会一直加载第一个,所以默认状态要放到最后

     4 几种常见状态说明

  

     1)android:state_pressed :   boolean。“true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。
     2)android:state_focusedboolean。“true”表示聚焦状态使用(例如使用滚动球/d-pad聚焦button);“false”表示非聚焦状态使用。
     3)android:state_selected : boolean。“true”表示选中状态使用(例如tab打开);“false”表示非选中状态使用。
     4)  boolean。“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)
     5)   boolean。“true”表示勾选状态使用;“false”表示非勾选状态使用。 
     6)   boolean。“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。 
     7) android:window_focused 
      boolean。“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如notification栏拉下或对话框显示)。 
     

 

 

二、例子: 1)listView状态改变   2)button状态改变 

 

  1、 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);

 

list_item_bg.xml 代码,按照上面的添加上样式即可

 

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 没有焦点时的背景图片-->
    <item android:state_window_focused="false" android:drawable="@color/red" />
    
    <!-- 非触摸模式下获得焦点并单击时的背景图片-->
    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@color/blue" />
    <!-- 触摸模式下单击时的背景图片-->
    <item android:state_focused="false" android:state_pressed="true" 
        android:drawable="@color/green" />
    <!--选中时的图片背景-->
    <item android:state_selected="true" android:drawable="@color/pink" />
    <!--获得焦点时的图片背景-->
    <item android:state_focused="true" android:drawable="@color/black" />

    <!-- 默认时的背景图片android:drawable可以是图片也可以是颜色  -->
    <item android:drawable="@color/white"/>
    
</selector>

 

2、按钮的selector 

  1)普通的样式即不同的状态给予不同的,简单的背景样式

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@color/red" />
    <item android:state_focused="true" android:drawable="@color/green" />
    <item android:state_pressed="true" android:drawable="@color/blue"  />
    <item android:drawable="@color/pink" />
</selector>

   2)不同的状态item下,添加自定义的shape背景样式,(添加渐变、描边、填充色,圆角处理,padding距离处理等),自定义的shap在下面会具体的学习

 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <!-- 定义当button 处于pressed 状态时的形态。-->
        <shape>
            <gradient android:startColor="#8600ff" />
            <stroke android:width="2dp" android:color="#000000" />
            <corners android:radius="5dp" />
            <padding android:left="10dp" android:top="10dp"
                android:bottom="10dp" android:right="10dp" />
        </shape>
    </item>
    <item android:state_focused="true">
        <!-- 定义当button获得focus时的形态-->
        <shape>
            <gradient android:startColor="#eac100" />
            <stroke android:width="2dp" android:color="#333333" />
            <corners android:radius="8dp" />
            <padding android:left="10dp" android:top="10dp"
                android:bottom="10dp" android:right="10dp" />
        </shape>
    </item>
    
    <item>       
        <shape>
            <solid android:color="@color/white"/>
            <stroke
                android:width="2dp"
                android:color="@color/pink" />
            <corners 
                android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                android:topLeftRadius="0dp"
                android:bottomRightRadius="0dp"
            />
        </shape>
    </item>
</selector>

 

三、Shape的使用

     简介

作用:XML中定义的几何形状

位置:res/drawable/文件的名称.xml

 

使用的方法:

Java代码中:R.drawable.文件的名称

 

XML中:Android:background="@drawable/文件的名称"

属性:

<shape>  Android:shape=["rectangle" | "oval" | "line" | "ring"]

其中rectagle矩形,oval椭圆,line水平直线,ring环形

<shape>中子节点的常用属性:

<gradient>  渐变

Android:startColor  

起始颜色

Android:endColor  

结束颜色             

Android:angle  

渐变角度,0从左到右,90表示从下到上,数值为45的整数倍,默认为0;

Android:type  

渐变的样式 liner线性渐变 radial环形渐变 sweep

<solid >  填充

Android:color  

填充的颜色

<stroke >描边

Android:width 

描边的宽度

Android:color 

描边的颜色

Android:dashWidth

 表示'-'横线的宽度

Android:dashGap 

表示'-'横线之间的距离

<corners >圆角

Android:radius  

圆角的半径 值越大角越圆

Android:topRightRadius  

右上圆角半径

Android:bottomLeftRadius 

右下圆角角半径

Android:topLeftRadius 

左上圆角半径

Android:bottomRightRadius 

左下圆角半径

<padding >填充

android:bottom="1.0dip" 

底部填充

android:left="1.0dip" 

左边填充

android:right="1.0dip" 

右边填充

android:top="0.0dip" 

上面填充

 

 

 

 

 

分享到:
评论

相关推荐

    基于android背景选择器selector的用法汇总

    综上所述,Android背景选择器Selector提供了丰富的视觉反馈,可以根据视图的不同状态改变其外观。通过巧妙地使用Selector,开发者可以提升应用程序的用户体验,使用户能直观地感知交互状态。无论是按钮、列表项还是...

    浅谈android的selector背景选择器

    ### 浅谈Android的Selector背景选择器 #### 一、引言 在Android开发中,为了提高用户体验,经常需要对控件的外观进行定制化处理,特别是在不同的交互状态下展示不同的视觉效果。`Selector`作为Android中一个非常...

    Android设置button背景selector和字体selector

    在Button中,我们主要用到两种Selector:一种是background selector(背景选择器),用于改变按钮的背景颜色或图片;另一种是text_color selector(文本颜色选择器),用于改变按钮的文字颜色。 2. **背景选择器...

    Android selector背景选择器的使用详解

    本篇文章将深入探讨Android中的Selector背景选择器的使用方法。 首先,让我们了解Selector的基本结构。Selector是XML文件,通常存储在项目的res/drawable目录下。以下是一个简单的Selector示例: ```xml &lt;selector...

    android selector注入器

    在Android开发中,选择器(Selector)是一种非常重要的机制,用于定义View在不同状态下的显示样式,如按下、聚焦、默认等。`android selector注入器` 提供了一种高效且便捷的方式来管理这些状态选择器,使得开发者...

    带有背景选择器的GridView

    总的来说,“带有背景选择器的GridView”是一个实用的UI设计,通过合理利用Android的背景选择器特性,我们可以为用户提供更直观的交互反馈,提升应用的用户体验。通过阅读和分析提供的“带有背景选择器的GridView”...

    Android文字颜色背景触摸点击反馈色之selector.zip

    然后,我们可以在TextView或其他文本元素中引用这个选择器,像这样设置`android:textColor`属性: ```xml android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" ...

    Android selector

    在这个"Android selector"主题中,我们将深入探讨如何创建并使用状态选择器来控制按钮(Button)和文字的样式变化。 首先,一个状态选择器通常是一个XML文件,存储在res/drawable目录下。例如,我们可以创建一个名...

    ListView Button ImageView 里应用selector选择器切换图片并保持住

    这就是`selector`选择器的作用,它可以帮助我们在不同状态下切换图片,并保持住相应的状态。现在,我们将详细探讨如何在ListView、Button和ImageView中应用selector来实现这一功能。 首先,让我们了解什么是`...

    Android编程中selector背景选择器用法实例分析

    本文实例讲述了Android编程中selector背景选择器用法。分享给大家供大家参考,具体如下: 在Android开发过程中,经常对某一View的背景在不同的状态下,设置不同的背景,增强用户体验。如果按钮,在按下时,背景变化...

    Android 下划线 选择器

    在Android开发中,选择器(Selector)是一种强大的工具,它允许开发者根据组件的状态改变其外观。在本场景中,我们讨论的是一个特定的实现:使用RadioGroup来创建一个具有下划线选中效果的选择器。RadioGroup是...

    Android selector状态选择器的使用详解

    Android selector状态选择器的使用详解 Android selector状态选择器是Android应用程序中常用的UI组件,它可以根据不同的状态来改变控件的外观和行为。例如,在一个按钮控件中,selector可以根据按钮的状态(如点击...

    Android使用selector修改TextView中字体颜色和背景色的方法

    在Android开发中,Selector是用于定义视图状态变化时外观的一种资源,它可以是颜色、图像或者形状等。本文将深入探讨如何使用Selector来修改TextView的字体颜色和背景颜色。 首先,我们来创建两个XML文件,分别用于...

    用selector设置button可用和不可用的样式

    Selector在Android中是一种基于状态的选择器,它可以为不同状态下的View定义不同的样式。它允许开发者根据View的状态(如按下、聚焦、选中、默认等)来改变其背景或颜色。以下我们将详细探讨如何创建一个Selector来...

    android选择器的应用

    在Android开发中,选择器(Selector)是一种非常重要的机制,它允许我们根据不同的状态改变UI元素的外观。本文将深入探讨Android选择器的应用,并通过一个实际的项目案例来阐述其工作原理和使用方法。 Android中的...

    android选择器

    在Android开发中,选择器(Selector)是一种非常重要的组件,它允许我们为UI元素定义不同状态下的视觉表现。本文将深入探讨Android选择器及其在实际应用中的使用。 Android选择器通常是一个XML文件,位于res/...

    android selector 定制按钮,xml定制,点击变按背景颜色字体颜色等

    在Android开发中,选择器(Selector)是一种非常重要的资源类型,它允许我们为UI组件(如按钮或RadioButton)定义不同的状态,并在用户交互时改变组件的外观。本篇将深入探讨如何通过XML来定制Android的Selector,...

Global site tag (gtag.js) - Google Analytics