`
包涵
  • 浏览: 36019 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Android:通过selector改变界面状态

阅读更多
做应用时,可能会需要动态改变控件的背景图片,如果仅仅是简单的点击,选中之类的事件,如果靠程序中写监听的代码就显得太麻烦了,在这种情况下,你可以使用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);  语句

可以达到点击后改变按钮图案的效果,标志图标已被按下
分享到:
评论

相关推荐

    SceneDelegate:[AppDelegate setWindow:]: unrecognized selector sent to instance 0x60000002b440

    -[AppDelegate setWindow:]: unrecognized selector sent to instance 0x60000002b440 修改方法: 在AppDelegate.h里加声明window @property (nonatomic, strong) UIWindow * window; 运行问题解决 兼容13和13以前...

    自定义CheckBox样式

    &lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;!--这里是对应点击之后,CheckBox的背景图--&gt; &lt;item android:drawable="@drawable/checkBtn_on" android:state_checked="true" android:...

    Android selector 完整demo

    Android selector 完整demo

    Android ImageView的selector效果实例详解

    Android ImageView的selector效果实例详解 在平时开发中如Button我们给它加上selector分别呈现pressed以及normal效果能给...&lt;selector xmlns:android=http://schemas.android.com/apk/res/android&gt; &lt;item android:

    Android 使用selector改变按钮状态实例详解

    主要介绍了Android 使用selector改变按钮状态实例详解的相关资料,需要的朋友可以参考下

    android模拟实现QQ登录界面

    这个资源主要是使用Android模拟开发了一个QQ登录界面的小案例。 内容概要:了解基础Android组件的使用,以及shape和selector组件美化。 适合人群:初学Android开发的小萌新,可以利用这个小案例巩固Android基础控件...

    Android自定义矩形及selector、shape的使用

    Android自定义矩形及selector、shape的使用Android自定义矩形及selector、shape的使用

    android selector注入器

    一个强大的selector注入器,它可以让view自动产生selector状态,免去了你写selector的麻烦。

    iOS长按按钮

    下面是实现的核心逻辑,具体例子详见附件 self.button=[UIButton buttonWithType:UIButtonTypeCustom]; [self.button addTarget:self action:@selector... selector:@selector(lazyButtontouchDown) object:nil]; }

    ios-打地鼠 小游戏.zip

    _timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(play) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop]addTimer:_timer forMode:NSDefaultRunLoopMode]; 改为: /*每...

    自定义SeekBar样式

    &lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt; &lt;!-- 按下状态 --&gt; &lt;item android:state_pressed="true" android:drawable="@drawable/bg3" /&gt; &lt;!-- 普通无焦点状态 --&gt; &lt;item ...

    实例详解Android Selector和Shape的用法

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。 1:Selector ...

    浅谈android的selector背景选择器

    浅谈android的selector背景选择器

    Android代码-快速自定义 View 的 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...

    Android设置button背景selector和字体selector

    http://blog.csdn.net/zhufuing/article/details/20134255博客的demo下载

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

    selector可以“预存”多种响应的反馈,主要以下多种状态有: android:state_selected是选中 android:state_focused是获得焦点 android:state_pressed是点击 android:state_enabled是设置是否响应事件,指所有事件 ...

    ColorSelector:Android ColorSelector

    ColorSelectorAndroid ColorSelector#这是一个基于Android的圆形颜色选择对话框组件。它是有一个Java文件实现,由Eclipse编译通过。无任何XML文件关联。具有易用简单,无耦合的优点。#使用方法:(1)将...

    探索Android中selector和shape的结合使用

    探索Android中selector和shape的结合使用

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

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

    模仿支付宝进入到后台界面模糊第一种

    selector:@selector(enterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterForeground:) ...

Global site tag (gtag.js) - Google Analytics