Android中通过xml改变背景及文字颜色
原创文章,转载请注明出处,谢谢!
本篇主要介绍Android开发中,通过XML资源文件来设置控件在不同状态下的背景及文字颜色。关于xml改变背景及文字颜色的原理,大家可以去看一下郭霖大神的源码分析文章,
传送门:Android视图状态及重绘流程分析,带你一步步深入了解View(三)
这部分内容不难理解,但是很容易忘记,并且网上相关的文章都比较零散,没有进行汇总。所以才有了我写这篇博客的初衷,给自己作一个详细总结,也给新手开发者一点帮助,老鸟
飘过。
一、通过xml文件给控件设置边框,圆角,渐变色
作为Android开发者,我们很多时候做开发并没有美工的支持,这时候我们需要设计一些相对比较漂亮的界面效果,就需要借助于android为我们提供的原始设计界面的方式,通过xml。
以下分别是不同情况下的设计方式和基本原理,请注意详细的代码注释。
1.设置边框,见下图:
2.设置单边和不同颜色的多边框:
3.设置圆角:
4.设置渐变色:
二、给控件设置在不同状态下的背景色或背景图片
1.设置不同状态背景色
未点击 点击下
2.不同状态下的背景图片:
未点击 点击
3.不同状态背景与边框,圆角等相结合
三.不同状态下的文字颜色
给文字定义在不同状态下的颜色时,同样是使用selector这个TAG,但是与背景颜色定义不同的是:
文字颜色在selector使用的是color属性,而背景颜色使用的是drawable属性。
例如:
!!!注意:定义文字颜色的selector文件可以放在drawable文件夹下,引用时使用@drawable/selector.xml
可以在res下新建一个color文件夹,专门存放文字颜色的selector文件(个人强烈推荐此种方式,容易区分文字颜色和背景),
此时引用时要使用@color/selector.xml
见下图:
好了,到此为止,基本上把Android中通过xml来改变控件背景色和文本颜色的相关知识说完了。相信读者看了这篇文章,应改对
xml定义颜色有了一个非常清晰的认识。
由于作者水平所限,如果有任何问题,欢迎随时交流。
Android中通过xml改变背景及文字颜色的更多相关文章
- button改变背景与文字颜色
1.定义/zhsh/res/color/txt_guide_selector.xml <?xml version="1.0" encoding="utf-8&quo ...
- 修改Android中strings.xml文件, 动态改变数据
有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ...
- [置顶] Android学习系列-Android中解析xml(7)
Android学习系列-Android中解析xml(7) 一,概述 1,一个是DOM,它是生成一个树,有了树以后你搜索.查找都可以做. 2,另一种是基于流的,就是解析器从头到尾解析一遍xml文件. ...
- android 中theme.xml与style.xml的区别
from://http://liangoogle.iteye.com/blog/1848448 android 中theme.xml与style.xml的区别: 相同点: 两者的定义相同. <r ...
- Android中解析XML格式数据的方法
XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...
- 设置LISTControl控件某一行的背景和文字颜色
定义宏 用listcontrol的SetItemData设置某一行的属性,通过自定义属性标识实现. 自定义某行内容颜色属性: #define COLOR_DEFAULT 0 //默认颜色 #defin ...
- xml中,button改变背景颜色方法
在画几个设置界面,用到了button控件,对于button空间的背景色在不同状态下的颜色改变方法,做了一下尝试,发现了两种背景颜色改变的方法,就总结了下. 方法一尝试了好多遍才好,要点在于,在sele ...
- Android中attrs.xml文件的使用详解
$*********************************************************************************************$ 博主推荐 ...
- Android中解析XML
XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能.今天就由我向大家介绍一下在Android平台下几种常见的XML解 ...
随机推荐
- # 20155327 2016-2017-4 《Java程序设计》第9周学习总结
20155327 2016-2017-4 <Java程序设计>第9周学习总结 20155327 2016-2017-4 <Java程序设计>第9周学习总结 教材学习内容总结 了 ...
- RocketMQ 使用及常见问题
前言 本文档是针对RocketMQ使用及常见问题的说明. 一.获取项目.安装包及文档 1. alibaba/RocketMQ https://github.com/alibaba/RocketMQ 2 ...
- HBase的FlushLargeStoresPolicy多例族支持
众所周知,HBase的一个例族flush时,会导致所有例族都跟着被flush.在HBase-0.94的官方说明(http://hbase.apache.org/0.94/book/number.of. ...
- Oracle E-Business Suite并发处理机制(Current Processing)
2012年写过一篇关于Oracle E-Business Suite并发管理器的文章,回头看之前总结的内容还是比较单薄,很多点没说到,最近在看这块的内容,索性再写一篇稍微完整的文章来. Oracle ...
- AndroidStudio-Unable to save settings Failed to save settings. Please restart Android Studio
Unable to save settings Failed to save settings. Please restart Android Studio 解决方法: 删除工程的.idea 然后在 ...
- tomcat启动时就频繁gc和full gc
一个小业务,流量并不大,功能也很简单,spring framework+mybatis+quartz,一启动就看到gc的频次和full gc的频次非常高: 4.202: [Full GC 4.202: ...
- 如何将图片嵌入到Html中
将图片内嵌入到Html中,最好的方法就是用Base64 string.例如:<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg ...
- Javascript设计模式理论与实战:工厂方法模式
本文从简单工厂模式的缺点说起,引入工厂方法模式,介绍的工厂方法模式的基本知识,实现要点和应用场景,最后举例进行说明工厂方法模式的应用.在之前的<Javascript设计模式理论与实战:简单工厂模 ...
- ASP.NET 邮件发送
ASP.NET 邮件发送用NET的MAIL类即可实现. 邮件发时,为不影响进程,所以采用多线程实现比较好. /// <summary> /// 多线程邮件发送 多线程需注意不要引用到外部方 ...
- ASP.NET中Onclick和OnserverClick事件的区别 (转)
对于服务器按钮控件(即<asp:Button>类型的按钮): 服务器响应事件:OnClick 客户端响应属性:OnClientClick 对于html按钮控件(即<input typ ...