`
dengbaoleng
  • 浏览: 1162505 次
文章分类
社区版块
存档分类
最新评论

android背景选择器selector使用方法

 
阅读更多

方法一:代码实现

1. 自定义状态效果可以通过代码实现,也可以通过xml定义style实现。

2. 下面先介绍代码实现,通过StateListDrawable定义Button背景。

3. 由于View类中PRESSED_ENABLED_STATE_SET值不是公共常量,所以通过继承来访问了。

特注:其他控件的效果,比如ImageView,也可以通过这种方法实现,但是由于ImageView默认是没焦点,不可点击的,需要自己更改(需要点击就设置android:clickable="true" , 需要能够选中就设置android:focusable="true" )。

java 代码:

01 package com.test.TestButton;
02
03 import android.app.Activity;
04 import android.content.Context;
05 import android.graphics.drawable.Drawable;
06 import android.graphics.drawable.StateListDrawable;
07 import android.os.Bundle;
08 import android.view.View;
09 import android.widget.Button;
10
11 public class TestButton extends Activity {
12 @Override
13 public void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.main);
16 Integer[] mButtonState = { R.drawable.defaultbutton,
17 R.drawable.focusedpressed, R.drawable.pressed };
18 Button mButton = (Button) findViewById(R.id.button);
19 MyButton myButton = new MyButton(this);
20 mButton.setBackgroundDrawable(myButton.setbg(mButtonState));
21 }
22
23 class MyButton extends View {
24
25 public MyButton(Context context) {
26 super(context);
27 }
28
29 // 以下这个方法也可以把你的图片数组传过来,以StateListDrawable来设置图片状态,来表现button的各中状态。未选
30 // 中,按下,选中效果。
31 public StateListDrawable setbg(Integer[] mImageIds) {
32 StateListDrawable bg = new StateListDrawable();
33 Drawable normal = this.getResources().getDrawable(mImageIds[0]);
34 Drawable selected = this.getResources().getDrawable(mImageIds[1]);
35 Drawable pressed = this.getResources().getDrawable(mImageIds[2]);
36 bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
37 bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);
38 bg.addState(View.ENABLED_STATE_SET, normal);
39 bg.addState(View.FOCUSED_STATE_SET, selected);
40 bg.addState(View.EMPTY_STATE_SET, normal);
41 return bg;
42 }
43 }
44 }

XML代码:

在res/drawable下面新建mybutton_background.xml文件,内容如下:

01 <?xml version=”1.0″ encoding=”utf-8″?>
02 <selector xmlns:android=”http://schemas.android.com/apk/res/android“>
03 <item android:state_focused=”true”
04 android:state_pressed=”false”
05 android:drawable=”@drawable/yellow” />
06 <item android:state_focused=”true”
07 android:state_pressed=”true”
08 android:drawable=”@drawable/green” />
09 <item android:state_focused=”false”
10 android:state_pressed=”true”
11 android:drawable=”@drawable/blue” />
12 <item android:drawable=”@drawable/grey” />
13 </selector>

这里面就定义了在不同状态下的显示图片,然后在layout里面定义Button的时候,指定它的background为这个mybutton_background

01 <?xml version=”1.0″ encoding=”utf-8″?>
02 <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
03 android:orientation=”vertical”
04 android:layout_width=”fill_parent”
05 android:layout_height=”fill_parent”
06 >
07 <Button android:id=”@+id/btn”
08 android:layout_width=”wrap_content”
09 android:layout_height=”wrap_content”
10 android:text=”@string/mybtn”
11 android:background=”@drawable/mybutton_background” />
12 </LinearLayout>

这种方式开发比较简单,适合做一些风格一致的Button,设置成同一个background就可以了。ImageView等控件如方法一中所述。

分享到:
评论

相关推荐

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

    综上所述,Android背景选择器Selector提供了丰富的视觉反馈,可以根据视图的不同状态改变其外观。通过巧妙地使用Selector,开发者可以提升应用程序的用户体验,使用户能直观地感知交互状态。无论是按钮、列表项还是...

    浅谈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)是一种非常重要的机制,用于定义View在不同状态下的显示样式,如按下、聚焦、默认等。`android selector注入器` 提供了一种高效且便捷的方式来管理这些状态选择器,使得开发者...

    带有背景选择器的GridView

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

    Android文字颜色背景触摸点击反馈色之selector.zip

    `selectordemo`可能是包含一个示例项目的目录,展示了如何在Android Studio工程中使用`selector`实现文字和背景颜色的触摸反馈。通过分析和运行这个示例,开发者可以更直观地理解`selector`的工作原理,并将其应用到...

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

    本文将深入探讨如何使用Selector来修改TextView的字体颜色和背景颜色。 首先,我们来创建两个XML文件,分别用于定义背景色和字体颜色的Selector。这两个文件将放在项目的res/color目录下。 1. `tbackground.xml` -...

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

    Android selector状态选择器的使用方法主要包括以下几个方面: 一、目的效果 使用selector可以提高用户体验,提供更加直接和明显的事件反馈。例如,在一个导航栏中,使用selector可以根据不同的状态来改变图片和...

    Android selector

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

    ListView Button ImageView 里应用selector选择器切换图片并保持住

    这就是`selector`选择器的作用,它可以帮助我们在不同状态下切换图片,并保持住相应的状态。现在,我们将详细探讨如何在ListView、Button和ImageView中应用selector来实现这一功能。 首先,让我们了解什么是`...

    选择器的使用

    在Android开发中,选择器(Selector)是一种非常重要的工具,它允许我们根据组件的状态改变其外观,如背景颜色、边框、文字颜色等。选择器主要用于按钮、列表项等交互元素,以提供视觉反馈,增强用户体验。下面我们...

    Android Selector和Shape的使用方法

    这篇文章将详细讲解这两种资源的使用方法,以及如何结合使用它们来实现背景选择器、文字颜色选择器和背景渐变效果。 1. 背景选择器(Selector) Selector位于`res/drawable`目录下,它定义了不同状态下的图形资源。...

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

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

    Android 下划线 选择器

    在Android开发中,选择器(Selector)是一种强大的工具,它允许开发者根据组件的状态改变其外观。在本场景中,我们讨论的是一个特定的实现:使用RadioGroup来创建一个具有下划线选中效果的选择器。RadioGroup是...

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

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

    android选择器的应用

    本文将深入探讨Android选择器的应用,并通过一个实际的项目案例来阐述其工作原理和使用方法。 Android中的选择器通常指的是颜色选择器(ColorStateList)和Drawable选择器(DrawableStateList)。它们在按钮、文本...

Global site tag (gtag.js) - Google Analytics