做应用时,可能会需要动态改变控件的背景图片,如果仅仅是简单的点击,选中之类的事件,如果靠程序中写监听的代码就显得太麻烦了,在这种情况下,你可以使用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); 语句
可以达到点击后改变按钮图案的效果,标志图标已被按下
分享到:
相关推荐
Selector是Android中的一种状态列表资源,它可以为控件在不同状态(如按下、默认、聚焦等)下显示不同的效果。 标题“Android设置button背景selector和字体selector”涉及到的知识点主要包括以下几点: 1. **...
总的来说,Android的Selector机制提供了一种灵活的方式,让我们可以根据视图的状态改变其外观。通过熟练掌握Selector,你可以创建出更加丰富和动态的用户界面。在实际开发中,Selector常用于按钮、列表项以及其他可...
在Android开发中,Selector是一种非常重要的图形元素,它允许开发者基于不同的状态来显示不同的图像,极大地增强了用户界面的交互性和视觉效果。Selector主要用于ListView、GridView、Button等组件,特别是自定义...
`Selector`是Android中的一个特殊类型的状态列表 drawable,用于根据视图的状态改变其外观。例如,它可以用来实现按钮的按下、聚焦等状态的效果。在XML中,`<selector>`元素包含了多个`<item>`元素,每个`<item>`...
在Android中,TextView可以有以下几种状态: 1. 默认状态(default):当TextView没有任何特殊状态时,即处于默认状态。 2. 选中状态(selected):用户点击或触摸TextView时,它会处于选中状态。 3. 聚焦状态...
`Selector`是Android开发中一个非常实用的功能,能够帮助开发者轻松实现界面控件在不同状态下的外观变化。通过对ListView和Button的示例分析,我们了解了如何使用`Selector`来定制控件的背景图像、文字颜色甚至更...
例如,我们可以创建两个不同形状的Shape资源,然后在Selector中定义它们对应的状态: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" ...
而对于非ImageView的自定义控件,可能需要手动调用`setPressed()`方法来改变按下状态: ```java myCustomView.setPressed(isPressed); ``` 除了按钮,Selector还可以用于其他控件,如ImageView。在描述中提到的...
在Android开发中,选择器(Selector)是一种非常重要的资源类型,它允许我们为UI组件(如按钮或RadioButton)定义不同的状态,并在用户交互时改变组件的外观。本篇将深入探讨如何通过XML来定制Android的Selector,...
首先,`selector`在Android中是一个重要的资源类型,它定义了不同状态下的视图样式,如默认状态、按下状态、选中状态等。在描述中提到的"Android文字颜色背景触摸点击反馈色",实质上就是在谈论`selector`如何应用于...
在这个例子中,我们定义了四种状态:默认、禁用、按下和聚焦,并分别为它们设置了不同的背景颜色。 2. 应用Selector到Button: 接下来,我们在布局文件(例如`activity_main.xml`)中将这个Selector作为Button的...
本示例探讨的是如何使用Android的`drawable`资源来实现一个按钮的三种不同状态:正常状态、按压状态和焦点状态。这些状态的切换可以提供更好的用户体验,让用户清楚地感知到他们的操作。 首先,我们创建一个XML文件...
在Android开发中,`Selector`是一种非常重要的图形元素,它被用来定义视图在不同状态下的外观,如正常状态、按下状态、选中状态等。`Selector`通常以XML文件的形式存在于项目的`res/drawable`目录下。在这个场景中,...
在实际项目中,我们可能需要根据Drawable的状态或条件来改变其外观。这可以通过使用StateListDrawable实现。例如,创建一个按钮背景,当按钮被按下时显示不同的颜色: ```xml <selector xmlns:android=...
在XML布局文件中,我们可以通过设置`android:background`属性来改变按钮的外观。默认情况下,按钮具有一定的立体感,但我们可以通过自定义背景资源来实现扁平化效果。 1. **自定义Shape drawable** 创建一个XML...
在Android开发中,ListView、Button和ImageView是我们经常使用的控件,它们在用户界面设计中扮演着重要角色。为了提供更好的用户体验,我们常常需要为这些控件添加交互效果,比如当用户触摸时改变图像,而当触摸离开...
这样,当按钮的状态改变时,`Selector`会自动选择对应状态的Drawable作为按钮的背景。 创建一个XML文件,例如`button_color_selector.xml`,放在`res/drawable`目录下,内容如下: ```xml <selector xmlns:android...
在Android 5.X系统中,Material Design的引入是设计风格的一次重大革新,它不仅改变了应用的视觉表现,还带来了丰富的交互体验。本篇将详细解析Material Design中的动画效果,特别是"Ripple"这一关键元素。 ...
在Android UI设计中,shape和selector是两个非常关键的元素,它们可以帮助开发者创建出美观且交互丰富的用户界面。下面我们将详细探讨这两个概念及其在实际应用中的使用方法。 首先,让我们来了解一下Shape。Shape...
Selector可以包含多个Shape或其他Drawable,每个对应一种状态: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@...