在画几个设置界面,用到了button控件,对于button空间的背景色在不同状态下的颜色改变方法,做了一下尝试,发现了两种背景颜色改变的方法,就总结了下。

方法一尝试了好多遍才好,要点在于,在selector中android:drawable="@drawable/button_focus"引号中为xml文件,此xml文件为color类型,且在此color xml文件中

<color xmlns:android="http://schemas.android.com/apk/res/android"

android:color="@color/button_focus_color">  <!-- 注意此处android:color的位置 -->

</color>

android:color="@color/button_focus_color"在color控件中。

方法一:填充button背景颜色的方法

在factory_reset这个xml文件中,其具体xml文件为:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="560px"

android:layout_height="348px"

android:background="#212121"

android:orientation="vertical"

android:layout_gravity="center_vertical|center_horizontal">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content" >   <!-- 怎样设置 -->

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center|bottom"

android:text="确定要恢复出厂设置吗?"

android:textColor="#e6e6e6"

android:textSize="34px"

android:paddingTop="68px"

/>

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center_horizontal" >

<Button

android:id="@+id/bn1"

android:layout_width="520px"

android:layout_height="72px"

android:text="保存"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:layout_marginBottom="18px"

android:layout_marginTop="60px"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

<Button

android:id="@+id/bn2"

android:layout_width="520px"

android:layout_height="72px"

android:text="取消"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

</LinearLayout>

</LinearLayout>

其中的Button,以第一个为例:

<Button

android:id="@+id/bn1"

android:layout_width="520px"

android:layout_height="72px"

android:text="保存"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:layout_marginBottom="18px"

android:layout_marginTop="60px"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

其中button_background_selectorxml文件,可在res中新建drawable文件夹并将其放置到其中,具体为

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:state_focused="true" android:drawable="@drawable/button_focus" > </item>

<item android:drawable="@drawable/button_default" > </item>

</selector>

其中button_focus以及button_default也分别为xml文件,放在drawalbe文件夹中

button_focus.xmlxml文件具体为:

<?xml version="1.0" encoding="utf-8"?>

<color xmlns:android="http://schemas.android.com/apk/res/android"

android:color="@color/button_focus_color">

</color>

button_default.xmlxml文件具体为:

<?xml version="1.0" encoding="utf-8"?>

<color xmlns:android="http://schemas.android.com/apk/res/android"

android:color="@color/button_default_color">

</color>

其中的button_focus_colorbutton_default_colorvalues文件夹中新建的color.xml文件中定义的,具体代码如下:

 

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name="button_focus_color">#004B64</color>

<color name="button_default_color">#3B3B3B</color>

<color name="text_focus_color">#ffffff</color>

<color name="text_default_color">#e6e6e6</color>

</resources>

方法二:采用9patch图片做button背景图片的方法

在factory_reset这个xml文件中,其具体xml文件为:(跟方法一中的代码是一样的,方法二只是改变了button_background_selector这个xml文件里的东西

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="560px"

android:layout_height="348px"

android:background="#212121"

android:orientation="vertical"

android:layout_gravity="center_vertical|center_horizontal">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content" >   <!-- 怎样设置 -->

<TextView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center|bottom"

android:text="确定要恢复出厂设置吗?"

android:textColor="#e6e6e6"

android:textSize="34px"

android:paddingTop="68px"

/>

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center_horizontal" >

<Button

android:id="@+id/bn1"

android:layout_width="520px"

android:layout_height="72px"

android:text="保存"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:layout_marginBottom="18px"

android:layout_marginTop="60px"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

<Button

android:id="@+id/bn2"

android:layout_width="520px"

android:layout_height="72px"

android:text="取消"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

</LinearLayout>

</LinearLayout>

其中的Button,以第一个为例:

<Button

android:id="@+id/bn1"

android:layout_width="520px"

android:layout_height="72px"

android:text="保存"

android:textSize="28px"

android:gravity="center_vertical|center_horizontal"

android:layout_marginBottom="18px"

android:layout_marginTop="60px"

android:background="@drawable/button_background_selector"

android:textColor="@drawable/button_text_selector"

/>

其中button_background_selectorxml文件,可在res中新建drawable文件夹并将其放置到其中,具体为:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:state_focused="true" android:drawable="@drawable/button_pressed" > </item>

<item android:drawable="@drawable/button_normal" > </item>

</selector>

由于这里给出了button_pressedbutton_normal这两个9patch背景图片,所以可以直接用android:drawable=“两张9patch图片的位置”来改变button的背景。

其中在res中新建了drawable文件夹,并在里边放了button_pressedbutton_normal这两个9patch图片,如下图所示:

button_normal.9.png                           button_pressed.9.png

xml中,button改变背景颜色方法的更多相关文章

  1. iOS 创建多个button实现点击改变背景颜色

    工程中需要实现与UISegmentedControl效果相似的一排一共十个button,如下图.但是SegmentedControl修改不太方便,就用button替代, 循环创建十个button,点击 ...

  2. Idea中更改主题后xml配置文件局部黄色背景颜色去除

    相信很多小伙伴和我一样一样的,喜欢更换Idea的主题,但是细心的小伙伴就发现了,每次更改主题后xml配置文件就会局部产生黄色背景颜色,对于强迫症患者真的是够了,网上也有部分文章,但是不够详细,也跟Id ...

  3. Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())

    在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易 ...

  4. QT中设置窗口背景颜色

    QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 1.使用QPalette 2.使用Style Sheet 3.绘 ...

  5. [JS9] document's bgColor改变背景颜色

    <HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...

  6. 怎么给button设置背景颜色?【Android】

    怎么给button设置背景颜色?[Android] 怎么给button设置背景颜色?[Android] 现在我想给按钮添加背景颜色,怎么做 1.android:background="@an ...

  7. OpenGL的glClearColor和glClear改变背景颜色

    OpenGL的glClearColor和glClear改变背景颜色 结合以下两个函数void glClearColor(GLclampf red,    GLclampf green, GLclamp ...

  8. button改变背景与文字颜色

    1.定义/zhsh/res/color/txt_guide_selector.xml <?xml version="1.0" encoding="utf-8&quo ...

  9. jquery动态改变背景颜色插件

    GETHUB下载地址 背景颜色用animate方法时时无法改变颜色的 所以要使用插件进行补充. 用法: <!DOCTYPE html> <html> <head> ...

随机推荐

  1. Maximal Square 解答

    Question Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1' ...

  2. magento添加系统sections配置时应注意的事项

    (1)只有在新增sections是需要增加对应的acl配置,这个配置可以放在config.xml中或者放在adminhtml.xml中 <adminhtml> <acl> &l ...

  3. IOS开发之---触摸和手势

    Touch:在与设备的多点触摸屏交互时生成. 响应者对象 响应者对象就是可以响应事件并对事件作出处理.在iOS中,存在UIResponder类,它定义了响应者对象的所有方法.UIApplication ...

  4. Primes on Interval(二分 + 素数打表)

    Primes on Interval Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  5. C#集合-队列

    本文来自:http://www.cnblogs.com/yangyancheng/archive/2011/04/28/2031615.html 队列是其元素以先进先出(FIFO)的方式来处理的集合. ...

  6. android面试题之五

    二十六.什么情况会导致Force Close ?如何避免?能否捕获导致其的异常? 抛出运行时异常时就会导致Force Close,比如空指针.数组越界.类型转换异常等等. 捕获:可以通过logcat查 ...

  7. iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

  8. MFC多线程内存泄漏问题&amp;解决方法

    在用visual studio进行界面编程时(如MFC),前台UI我们能够通过MFC的消息循环机制实现.而对于后台的数据处理.我们可能会用到多线程来处理. 那么对于大多数人(尤其是我这样的菜鸟),一个 ...

  9. 启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration. - Class: java.net.PlainSocketImpl

    今天刚好宿舍断网,打开电脑,打开ide工具,启动tomcat后,访问web项目工程,页面显示404,查看控制台,运行报错信息如下: 严重: Exception starting filter stru ...

  10. ThinkPHP中的__initialize()和类的构造函数__construct()

    ThinkPHP中的__initialize()和类的构造函数__construct()网上有很多关于__initialize()的说法和用法,总感觉不对头,所以自己测试了一下.将结果和大家分享.不对 ...