xml中,button改变背景颜色方法
在画几个设置界面,用到了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_selector为xml文件,可在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.xml的xml文件具体为:
<?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.xml的xml文件具体为:
<?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_color与button_default_color为values文件夹中新建的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_selector为xml文件,可在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_pressed跟button_normal这两个9patch背景图片,所以可以直接用android:drawable=“两张9patch图片的位置”来改变button的背景。
其中在res中新建了drawable文件夹,并在里边放了button_pressed跟button_normal这两个9patch图片,如下图所示:
button_normal.9.png button_pressed.9.png
xml中,button改变背景颜色方法的更多相关文章
- iOS 创建多个button实现点击改变背景颜色
工程中需要实现与UISegmentedControl效果相似的一排一共十个button,如下图.但是SegmentedControl修改不太方便,就用button替代, 循环创建十个button,点击 ...
- Idea中更改主题后xml配置文件局部黄色背景颜色去除
相信很多小伙伴和我一样一样的,喜欢更换Idea的主题,但是细心的小伙伴就发现了,每次更改主题后xml配置文件就会局部产生黄色背景颜色,对于强迫症患者真的是够了,网上也有部分文章,但是不够详细,也跟Id ...
- Qt中设置widget背景颜色/图片的注意事项(使用样式表 setStyleSheet())
在Qt中设置widget背景颜色或者图片方法很多种:重写paintEvent() , 调色板QPalette , 样式表setStyleSheet等等. 但是各种方法都有其注意事项,如果不注意则很容易 ...
- QT中设置窗口背景颜色
QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 1.使用QPalette 2.使用Style Sheet 3.绘 ...
- [JS9] document's bgColor改变背景颜色
<HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...
- 怎么给button设置背景颜色?【Android】
怎么给button设置背景颜色?[Android] 怎么给button设置背景颜色?[Android] 现在我想给按钮添加背景颜色,怎么做 1.android:background="@an ...
- OpenGL的glClearColor和glClear改变背景颜色
OpenGL的glClearColor和glClear改变背景颜色 结合以下两个函数void glClearColor(GLclampf red, GLclampf green, GLclamp ...
- button改变背景与文字颜色
1.定义/zhsh/res/color/txt_guide_selector.xml <?xml version="1.0" encoding="utf-8&quo ...
- jquery动态改变背景颜色插件
GETHUB下载地址 背景颜色用animate方法时时无法改变颜色的 所以要使用插件进行补充. 用法: <!DOCTYPE html> <html> <head> ...
随机推荐
- codecomb 2085【肥得更高】
题目背景 自2009年以来,A.B站的历史就已经步入了农业变革的黎明期. 在两站的娱乐及音乐区,金坷垃制造业早已得到长足的发展,甚至有些地方还出现了坷垃翻唱的萌芽. 新兴肥料人开始走上历史的舞台. 他 ...
- HDU 1272 小希的迷宫(并查集) 分类: 并查集 2015-07-07 23:38 2人阅读 评论(0) 收藏
Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就 ...
- svn 清理失败 (cleanup 失败) 的解决方法
svn 清理失败 (clean up 失败) 的解决方法 參考:http://www.tuicool.com/articles/biy6na 解决方法: step1: 到 sqlite官网 (http ...
- Ubuntu+Eclipse+ADT+Genymotion+VirtualBox开发环境搭建
1.Eclispe安装就不说了 2.以下说说怎样安装ADT插件.有两种途径: (1)在线安装: 地址:https://dl-ssl.google.com/android/eclipse/(只是近期天朝 ...
- NET基础课--JIT编译器如何工作1
1..Net运行时调用JIT编译器,用来把由C#编译器生成的IL指令编译成机器代码.这一任务在应用程序的运行期间是分步进行的.JIT并不是在程序一开始就编译整个应用程序,取而代之的是,CLR是一个函数 ...
- WPF实现窗体最小化后小图标在右边任务栏下
一 基本功能 1. 这里是用 NotifyIcon 控件来实现,但 WPF 下没有 NotifyIcon 控件,怎么办,用 WinForm 下的呗. 先引用 .NET 自带的两个程序集 Syste ...
- C# 关于out关键字的用法(一个方法返回多个值的问题)
通常一个方法只能返回一个值,但是如果在某些时候,我们想要返回多个值,例如某个方法将一个浮点数分割成一个整数和一个小数返回去.这个时候我们就要用到out关键字. 如果用ref也可以解决,但是用ref需要 ...
- canvas模糊事件处理
不知道大家项目中有没有用到canvas时还有时候会出现模糊的情况: 具体推测可能是屏幕改变了,然而canvas的渲染对象并没有跟着一起变: 这里简单介绍个对象,window.devicePixelRa ...
- JQ 事件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Spring整合Hibernate 二 - 声明式的事务管理
Spring大战Hibernate之声明式的事务管理 Spring配置文件: 添加事务管理类的bean: <bean id="txManager" class="o ...