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解 ...
随机推荐
- 用 pyqt4 编写的一个翻译小工具
有时候我们在开发时遇到一些陌生的英文单词或者不容易看出某些长句的中文意思时该怎么办呢?打开桌面上的翻译软件?打开浏览器里收藏着的翻译网址或者直接贴上百度的搜索框去查?这些方法固然可以,还很常见,但如果 ...
- 第二周leetcode
4/4 这周莫名得忙,一天是做编译,一天是做模式识别作业,(一天刷魔兽皮肤),周末玩了两天,总的来说还是松懈了,大概只做了两天的leetcode,刷了10道题,羞愧羞愧. 决定每次把代码附上在这个总结 ...
- redis修改端口号
为redis分配一个8888端口,操作步骤如下: 1.$REDIS_HOME/redis.conf重新复制一份,重命名为redis8888.conf. 2.打开redis8888.conf配置文件,找 ...
- Delphi 自带的字符串分割函数split
下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSy ...
- Android-startService后台运行
什么时候使用startService? 答:APP在后台长时间运行并执行业务的时候,可以用服务,主要是看服务的特点(在后台长时间运行): Service相关代码: package liudeli.se ...
- ArcGIS(批量)删除属性字段
ArcGIS下删除属性字段有两种方式:① 单个删除:② 批量删除. 单个删除 批量删除 尽管如此,ArcGIS桌面软件在属性字段的编辑上并不太方便,所以我们自己做了一些工具辅助平时的内业处理工作.(* ...
- 使用C语言实现线性表
线性表是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列,序列中的每个数据元素,可以是一个数字,可以是一个字符,也可以是复杂的结构体或对象.例如:1,2,3,4,5是一个线性表,A,B ...
- Discuz showmessage函数解析[转]
函数相关文件 \source\function\function_core.php\source\function\function_message.php ## 函数解释 /** * 显示提示信息 ...
- visualstudio部分快捷键
[工具快捷键] Ctrl+Shift+N: 新建项目 Ctrl+Shift+O: 打开项目 Ctrl+Shift+S: 全部保存 Shift+Alt+C: 新建类 Ctrl+Shift+A: 新建项 ...
- .Net core 2.0的数据初始化
在StartUp.cs里面,添加Seed方法 public static void Seed(IApplicationBuilder applicationBuilder) { using (var ...