`
wen742538485
  • 浏览: 239777 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android背景选择器selector使用方法

阅读更多
方法一:代码实现

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

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

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

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

java 代码:


view sourceprint?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文件,内容如下:


view sourceprint?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


view sourceprint?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