`

android布局之selector(背景选择器)[转]

 
阅读更多

关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。

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

先看一下listview中的状态:

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

drawable/list_item_bg.xml

<?xml version="1.0" encoding="utf-8" ?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 默认时的背景图片-->

    <item android:drawable="@drawable/pic1" />

    <!-- 没有焦点时的背景图片-->

    <item android:state_window_focused="false" android:drawable="@drawable/pic1" />

    <!-- 非触摸模式下获得焦点并单击时的背景图片-->

    <item android:state_focused="true" android:state_pressed="true"

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

    <!-- 触摸模式下单击时的背景图片-->

    <item android:state_focused="false" android:state_pressed="true"

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

    <!--选中时的图片背景-->

    <item android:state_selected="true" android:drawable="@drawable/pic4" />

    <!--获得焦点时的图片背景-->

    <item android:state_focused="true" android:drawable="@drawable/pic5" />

</selector>

  使用些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的一些背景效果:

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

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

根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。

以下就是配置button中的文字效果:

drawable/button_font.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="#FFF" />

    <item android:state_focused="true" android:color="#FFF" />

    <item android:state_pressed="true" android:color="#FFF" />

    <item android:color="#000" />

</selector>

Button还可以实现更复杂的效果,例如渐变啊等等。

drawable/button_color.xml

 

<?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" color="#ffffff" />

            <corners android:radius="8dp" />

            <padding android:left="10dp" android:top="10dp"

                android:bottom="10dp" android:right="10dp" />

        </shape>

    </item>

</selector>

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

     android:focusable="true"

     android:backgroud="@drawable/button_color"

这样当你使用Button的时候就可以甩掉系统自带的那黄颜色的背景了,实现个性化的背景,配合应用的整体布局非常之有用啊.

 

转至:http://www.2cto.com/kf/201110/107866.html

分享到:
评论

相关推荐

    浅谈android的selector背景选择器

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

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

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

    Android设置button背景selector和字体selector

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

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

    在Android开发中,背景选择器(Selector)是一个强大的工具,用于定义不同状态下的视图样式。本文将深入探讨如何创建和使用Selector,以及它在ListView、Button等组件中的应用。 一、创建Selector XML文件 ...

    Android-ContactSelector联系人选择器选择联系人

    "Android-ContactSelector联系人选择器选择联系人"是这样一个组件,它简化了这一过程,提供了优雅的用户体验。这个项目通常被包含在应用中,用于获取用户的联系人信息,例如在发送消息、添加朋友或者分享内容时。 ...

    带有背景选择器的GridView

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

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

    在Android开发中,Selector背景选择器是一个强大的工具,它允许开发者根据View的不同状态来改变其背景,从而提供更丰富的交互体验。本篇文章将深入探讨Selector的结构和使用方法,并通过实例来展示其功能。 ...

    Android selector 完整demo

    然后将这个颜色选择器设置到TextView的`android:textColor`属性上。 Demo中的`TestOne`可能包含了一个完整的应用实例,展示了如何创建和使用Selector。在实践中,你可以尝试修改Selector中的状态和对应的图像/颜色...

    Android 仿京东商城底部布局的选择效果(Selector 选择器的实现)

    Android 仿京东商城底部布局的选择效果...Android 仿京东商城底部布局的选择效果是通过 Selector 选择器来实现的,Selector 选择器可以根据不同的状态来设置不同的背景图片或颜色,从而实现了底部布局的选择效果。

    Android selector

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

    Android时间选择器两种实现(自定义的年、月、日、时、分)

    在Android开发中,时间选择器是一个常见的用户界面组件,它允许用户方便地选取特定的时间,如年、月、日、时、分。本教程将详细讲解两种自定义时间选择器的实现方法,确保精确到分钟,并提供可复用的自定义View代码...

    android使用xml实现一些常用的背景图

    2. **Selector**: Selector是Android中的状态选择器,它可以定义不同状态下的图形表现。比如,当按钮被按下、聚焦或者默认状态时,背景可以有不同的颜色或样式。通过在XML中定义`&lt;selector&gt;`元素,可以轻松地实现...

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

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

    Java_Picture Selector Library for Android or 图片选择器.zip

    【Java_Picture Selector Library for Android】是一个专门为Android平台设计的图片选择库,它为开发者提供了一个用户友好的界面,使得用户在应用中可以方便地选择、裁剪和预览图片。这个库通常用于社交应用、图像...

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

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

    Android 定义控件方式实现带开关效果的选择器

    首先,我们要理解Android中的选择器(Selector)。在Android中,选择器通常指的是`android.widget.CompoundButton`类的子类,如`CheckBox`或`Switch`,它们可以用来表示两种状态之间的切换。在这里,我们将创建一个...

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

    【Android Selector 状态选择器详解】 在Android开发中,提供了一种强大的机制,名为Selector,它允许开发者根据控件的不同状态来改变其显示效果,从而提升用户体验。Selector主要用于定义按钮、菜单项等交互元素在...

    Android Tablayout 自定义Tab布局的使用案例

    Android Tablayout 自定义Tab布局的使用案例 Android Tablayout 是 Android 设计库中的一部分,主要用于实现标签页功能。Tablayout 中的 Tab 可以自定义布局,以满足不同的需求。本文将 introduction 了 Android ...

    Android开发实现布局中为控件添加选择器的方法

    在上面的示例代码中,我们使用 `android:textColor` 属性将文字颜色设置为选择器 `@drawable/guide_btntext_selector`,使用 `android:background` 属性将背景图片设置为选择器 `@drawable/guide_btn_selector`。...

Global site tag (gtag.js) - Google Analytics