在画几个设置界面,用到了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. 【转】Linux驱动模块编译进内核中

    原文网址:http://blog.chinaunix.net/uid-29287950-id-4573481.html BQ27501驱动编译进内核 一.       驱动程序编译进内核的步骤 在 l ...

  2. netstat和telnet命令在Windows7中的用法(转载)

    在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...

  3. pktgen使用详细教程

    网上有很多讲解pktgen的文章,但总是不够全面细致,看完之后自己还是不会写pktgen测试脚本,为此本文对pktgen进行详细的阐述,让大家看完本文后能够自己动手写pktgen shell. 1.p ...

  4. FZU1862(线段树 或者 DP)

    Problem 1862 QueryProblem Accept: 100    Submit: 249Time Limit: 2000 mSec    Memory Limit : 32768 KB ...

  5. Android自定义垂直滚动自动选择日期控件

    ------------------本博客如未明正声明转载,皆为原创,转载请注明出处!------------------ 项目中需要一个日期选择控件,该日期选择控件是垂直滚动,停止滚动时需要校正日期 ...

  6. [转]Activemq管理和基本介绍

    1.ActiveMQ服务器工作模型       通过ActiveMQ消息服务交换消息.消息生产者将消息发送至消息服务,消息消费者则从消息服务接收这些消息.这些消息传送操作是使用一组实现 ActiveM ...

  7. PHP - 多维数组

    多维数组指的是包含一个或多个数组的数组. PHP 能理解两.三.四或五级甚至更多级的多维数组.不过,超过三级深的数组对于大多数人难于管理. 注释:数组的维度指示您需要选择元素的索引数. 对于二维数组, ...

  8. 利用FreeMarker静态化网页

    1.介绍-FreeMarker是什么 模板引擎:一种基于模板的.用来生成输出文本的通用工具 基于Java的开发包和类库 2.介绍-FreeMarker能做什么 MVC框架中的View层组件 Html页 ...

  9. ThreadPool(线程池) in .Net

    本文来自:http://rickie.cnblogs.com/archive/2004/11/23/67275.html 在多线程的程序中,经常会出现两种情况.一种情况下,应用程序中的线程把大部分的时 ...

  10. Innobackupex 全备数据库

    对于MySQL数据库的热备.xtrabackup是除了MySQL enterprise backup之外的不二之选. 该工具提供了基于innodb存储引擎的热备.支持全量,增量备份,部分备份,时点恢复 ...