Android之selector的使用

我们做过项目的或多或少做过类似这样的一个功能:当点击某个组件后,组件的背景改变。初学者往往是这么一个思路:给组件设置一个监听器,当监听到事件的时候,改变组件的状态(背景图片或者背景色)。当然,这种做法是完全正确的,但是当组件特别多的时候,要处理的代码很多,很繁琐,android提供了一个selector(选择器)来改变界面的状态。下面我们以改变一个button背景来介绍它的具体用法。

1.因为selector是在Drawable文件夹下配置的,所以首先在Drawable文件夹下新建一个android xml文件

2.然后在button_selector.xml中添加以下代码

//被按下的背景

<item android:state_pressed="true"
  android:drawable="@drawable/cancel_small_click"/>

//获得焦点时的背景
 <item android:state_focused="true"
  android:drawable="@drawable/cancel_small_unclick"/>

//默认时的背景
 <item android:drawable="@drawable/cancel_small_unclick" />

3.最后,使用这个xml文件,有两种方式:

(1)第一种是在组件中配置:android background=“@drawable/button_selector"即可实现

(2)第二种是在代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.button_selector); Button.setSelector(drawable)

注1:列表设置selector后有可能显示为黑,需要加上android:cacheColorHint="@android:color/transparent"

注2:Button的selector还有其他的效果

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

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

根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。以下就是配置button中的文字效果:drawable/button_font.xml

当然Button还可以实现更复杂的效果

结伴旅游,一个免费的交友网站:www.jieberu.com

推推族,免费得门票,游景区:www.tuituizu.com

时间: 2024-09-29 17:36:16

Android之selector的使用的相关文章

浅谈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 <?x

Android使用selector自定义按钮

可视化编辑器,alt+1到9键,切换到工具区,tab键,选择按钮,esc键,返回编辑 Android使用selector自定义按钮 以前定义按钮的时候,想使用自定义的Button总是习惯在activity中获取该按钮然后,重写该按钮的onTouchListener然后在当中切换按钮的背景图片.这样做不但使activity中的代码变得臃肿而且不能该按钮不能达到重用的目的. 后来接触到了Android 中的selector挺好用的,下面详细讲解一下如何使用selector,首先在res\drawab

Android之Selector详解(背景选择器)

定义: 在XML中定义的一个可绘制(drawable)的对象,它可以根据状态的不同为同一个图形更换不同的图片.比如说,对于一个按钮控件(Button)可以有几种不同的状态(pressed,focused或者其它),你可以使用state list为其中的每一个状态来设置按钮的背景图片. XML的位置: android的selector是在res/drawable/中配置的 标签与属性: android:constantSize 这个是布尔型,false表示各个状态的大小(size)各自不同,tru

【转】 Android中selector的使用

引言 selector中文的意思选择器,在Android中常常用来作组件的背景,这样做的好处是省去了用代码控制实现组件在不同状态下不同的背景颜色或图片的变换.使用十分方便. selector的定义 selector就是状态列表(StateList), 它分为两种,一种Color-Selector 和Drawable-Selector. Color-Selector color-selector 就是颜色状态列表,可以跟color一样使用,颜色会随着组件的状态而改变.文件的位置存储于 /res/c

Android drawable selector 设置无效

今天写代码时,需要设置一个TextView 的点击效果,press 状态和normal 状态两个icon,同时,点击区域背景在press状态下也不同.实现时将TextView 放在RelativeLayout 中 ,RelativeLayout 作点击区域,设置点击的背景效果,TextView 在点击时显示不同的icon图片. 布局文件如下 <RelativeLayout android:id="@+id/dele_layout" android:layout_width=&qu

android 使用selector的注意事项

在android开发中,我们经常会使用到imageview button等一些可以点击的控件,为了更好的交互效果,我们一般都是点击的时候给该控件设置一个selector,设置点击的时候什么样式,非点击的时候什么样式,因为以前使用的都很粗心大意,所以也没怎么看,现在发现了一些新的小问题,与君共勉 1.一个状态 :直接分别设置pressed 为 false 和 true 的图片状态,不用添加默认的drawable了 完成了1之后,我们发现这个时候,我们点击该控件的时候并没有我们想要的效果,那是因为我

Android 之 selector

为按键增加背景图片时,需要将图片放在 selector 供按键使用.第一次获取到 selector 的 XML 是从网上搜索到的.一直在想,如果需要靠 Eclipse 或手动编写 selector 时,能不能搞出来呢?幸好,Eclipse 支持生成 selector 框架,只能说是框架,因为 selector 的内容只能手动输入.Eclipse 支持生成 selector 框架的步骤如下:Eclipse Packge Explorer 中 res 上单击右键 -> New -> Other..

android TextView selector点击样式改变)

1.selector 从单词的意思来说:选择器,就是对你的目标的控制.selector主要是用在ListView的item单击样式和TextView和Button的点击样式. 2.主要属性介绍: android:state_selected选中 android:state_focused获得焦点 android:state_pressed点击 android:state_enabled设置是否响应事件,指所有事件 3.下面通过例子来说一下selector对TextView设置: 1).在res下

Android中selector的使用

引言 selector中文的意思选择器,在Android中常常用来作组件的背景,这样做的好处是省去了用代码控制实现组件在不同状态下不同的背景颜色或图片的变换.使用十分方便. selector的定义 selector就是状态列表(StateList), 它分为两种,一种Color-Selector 和Drawable-Selector. Color-Selector color-selector 就是颜色状态列表,可以跟color一样使用,颜色会随着组件的状态而改变.文件的位置存储于 /res/c

Android之Selector与Shape的使用

Selector: 在开发过程中,通常我们需要给控件增加点击的效果,效果如下: 默认效果                  点击效果    1.首先准备两张图片(默认和点击时的图片) 2.右击res文件夹,新建一个xml文件,在弹出的对话框中,Resource Type 选择Drawable,Root Element选择Selector,填入文件名(如:pressed_selector),点击完成,这时会在res文件夹中生成一个drawable文件夹存放我们创建的xml文件 3.xml代码如下: