做应用时,可能会需要动态改变控件的背景图片,如果仅仅是简单的点击,选中之类的事件,如果靠程序中写监听的代码就显得太麻烦了,在这种情况下,你可以使用selector动态改变控件背景
1. 在res/drawable目录下建一个mybutton.xml文件,根据需要,不同的状态下建立不同的item,并对应相应的图片
可以设置以下几种触发状态:
android:state_pressed
Boolean . "true" if this item should be used when the object is pressed (such as when a button is touched/clicked); "false" if this item should be used in the default, non-pressed state.
如果是true,当被点击时显示该图片,如果是false没被按下时显示默认。
android:state_focused
Boolean . "true" if this item should be used when the object is focused (such as when a button is highlighted using the trackball/d-pad); "false" if this item should be used in the default, non-focused state.
true,获得焦点时显示;false,没获得焦点显示默认。
android:state_selected
Boolean . "true" if this item should be used when the object is selected (such as when a tab is opened); "false" if this item should be used when the object is not selected.
true,当被选择时显示该图片;false,当未被选择时显示该图片。
android:state_checkable
Boolean . "true" if this item should be used when the object is checkable; "false" if this item should be used when the object is not checkable. (Only useful if the object can transition between a checkable and non-checkable widget.)
true,当CheckBox能使用时显示该图片;false,当CheckBox不能使用时显示该图片。
android:state_checked
Boolean . "true" if this item should be used when the object is checked; "false" if it should be used when the object is un-checked.
true,当CheckBox选中时显示该图片;false,当CheckBox为选中时显示该图片。
android:state_enabled
Boolean . "true" if this item should be used when the object is enabled (capable of receiving touch/click events); "false" if it should be used when the object is disabled.
true,当该组件能使用时显示该图片;false,当该组件不能使用时显示该图片。
android:state_window_focused
Boolean . "true" if this item should be used when the application window has focus (the application is in the foreground), "false" if this item should be used when the application window does not have focus (for example, if the notification shade is pulled down or a dialog appears).
true,当此activity获得焦点在最前面时显示该图片;false,当没在最前面时显示该图片。
<? xml version = "1.0" encoding = "utf-8" ?>
<selector xmlns:android = "http://schemas.android.com/apk/res/android" >
<item android:state_pressed = "true"
android:drawable = "@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused = "true"
android:drawable = "@drawable/button_focused" /> <!-- focused -->
<item android:drawable = "@drawable/button_normal" /> <!-- default -->
</selector>
范例:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/poker_back" />
<item android:state_pressed="true" android:drawable="@drawable/poker_a" />
</selector>
对应的button设置:
<ImageButton
android:id="@+id/imagebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/mybutton"
/>
获得类似Focus的效果,鼠标按下时(非点击),按钮图标改变
如果在监听事件中配合 imageButton.setImageResource(R.drawable.poker_a); 语句
可以达到点击后改变按钮图案的效果,标志图标已被按下
分享到:
相关推荐
-[AppDelegate setWindow:]: unrecognized selector sent to instance 0x60000002b440 修改方法: 在AppDelegate.h里加声明window @property (nonatomic, strong) UIWindow * window; 运行问题解决 兼容13和13以前...
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--这里是对应点击之后,CheckBox的背景图--> <item android:drawable="@drawable/checkBtn_on" android:state_checked="true" android:...
Android selector 完整demo
Android ImageView的selector效果实例详解 在平时开发中如Button我们给它加上selector分别呈现pressed以及normal效果能给...<selector xmlns:android=http://schemas.android.com/apk/res/android> <item android:
主要介绍了Android 使用selector改变按钮状态实例详解的相关资料,需要的朋友可以参考下
这个资源主要是使用Android模拟开发了一个QQ登录界面的小案例。 内容概要:了解基础Android组件的使用,以及shape和selector组件美化。 适合人群:初学Android开发的小萌新,可以利用这个小案例巩固Android基础控件...
Android自定义矩形及selector、shape的使用Android自定义矩形及selector、shape的使用
一个强大的selector注入器,它可以让view自动产生selector状态,免去了你写selector的麻烦。
下面是实现的核心逻辑,具体例子详见附件 self.button=[UIButton buttonWithType:UIButtonTypeCustom]; [self.button addTarget:self action:@selector... selector:@selector(lazyButtontouchDown) object:nil]; }
_timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(play) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop]addTimer:_timer forMode:NSDefaultRunLoopMode]; 改为: /*每...
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 按下状态 --> <item android:state_pressed="true" android:drawable="@drawable/bg3" /> <!-- 普通无焦点状态 --> <item ...
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。 1:Selector ...
浅谈android的selector背景选择器
Android-SpeedyViewSelector This is a change Background Or TextColor Selector support library, with which you can directly specify the Background to be displayed in different states or TextColor Layout...
http://blog.csdn.net/zhufuing/article/details/20134255博客的demo下载
selector可以“预存”多种响应的反馈,主要以下多种状态有: android:state_selected是选中 android:state_focused是获得焦点 android:state_pressed是点击 android:state_enabled是设置是否响应事件,指所有事件 ...
ColorSelectorAndroid ColorSelector#这是一个基于Android的圆形颜色选择对话框组件。它是有一个Java文件实现,由Eclipse编译通过。无任何XML文件关联。具有易用简单,无耦合的优点。#使用方法:(1)将...
探索Android中selector和shape的结合使用
本文实例讲述了Android编程中selector背景选择器用法。分享给大家供大家参考,具体如下: 在Android开发过程中,经常对某一View的背景在不同的状态下,设置不同的背景,增强用户体验。如果按钮,在按下时,背景变化...
selector:@selector(enterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterForeground:) ...