原创文章,转载请注明出处,谢谢!
本篇主要介绍Android开发中,通过XML资源文件来设置控件在不同状态下的背景及文字颜色。关于xml改变背景及文字颜色的原理,大家可以去看一下郭霖大神的源码分析文章,
这部分内容不难理解,但是很容易忘记,并且网上相关的文章都比较零散,没有进行汇总。所以才有了我写这篇博客的初衷,给自己作一个详细总结,也给新手开发者一点帮助,老鸟
飘过。
一、通过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定义颜色有了一个非常清晰的认识。
由于作者水平所限,如果有任何问题,欢迎随时交流。
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中节点是支持占位符的,如下所示:
[置顶] 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的区别: 相同点: 两者的定义相同.
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解 ...
随机推荐
前端构建大法 Gulp 系列 (一):为什么需要前端构建
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
asp.net LINQ防止SQL注入式攻击
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
ios开发怎么获取输入的日期得到星期
+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *weekdays = [NSArray arrayWithObject ...
RequireJS使用及JS目录规划
1.RequireJS学习文档: http://www.requirejs.cn/ 2.目录规划(参考:ColUdf.vm) 1)一个完整的html,对应一个js文件,模块js在主页面对应的js文件中 ...
远程调试树莓PI
非官方 参考 http://linuxtortures.blogspot.jp/2012/06/cross-compiling-and-cross-debugging-c.html 注意: 建立 / ...
历届试题 小数第n位 (求循环节)
只要被除数出现重复,就表明循环节出现了.即使商不是循环小数,也可以补0作为循环节,这样就可以统一处理了. AC代码 #include #include
浅析toString()和toLocaleString()的区别
翻看,对toString()和toLocaleString()两者的区别并没有直白的说明,简单查阅了一下 ecmascript官方文档 和 MDN 二者 ...
android的特点有哪些
android拥有完善的应用程序框架,支持4大应用组件activity,service,contentProvider,broadcast,可以在任意层次上进行复用和更换: android中java字 ...
Oracle登录命令
1.运行SQLPLUS工具 C:\Users\wd-pc>sqlplus 2.直接进入SQLPLUS命令提示符 C:\Users\wd-pc>sqlplus /nolog 3.以OS身份连 ...
iOS 自定义步骤进度条
新项目要做入驻功能,其中包括一个入住流程,类似登录或者注册流程如下图. 之前想着用自己绘图来做,可是又懒不想多写代码,所以就想着能不能用进度条来做. 1.用进度条做的首先要解决的是进度条的高度问题,可 ...