Android资源文件中颜色使用的总结
本文对Android颜色的使用做总结,重点介绍颜色在资源文件中的创建和颜色的选择器的创建和使用。
一.在xml中使用颜色资源文件和颜色选择器文件
(一)颜色资源文件的创建
1.创建资源文件,如图所示:
2.编辑colors.xml资源文件,如图所示:
(二)颜色选择器文件
1.颜色选择器的创建
2.颜色选择器文件的编辑
- <?xml version="1.0" encoding="utf-8"?>
- <!-- 被选中时,颜色变为绿色 --><!-- 没有被选中时,颜色变为蓝色 --><!-- <item android:state_checked="false" android:color="#00f"/>如果这里设置,那么按下功能就没有作用了 --><!-- 按下是显示红色 --><!-- 松开时显示黑色 -->
(三)在布局使用颜色资源文件和颜色选择器文件
- <!-- color颜色的使用 --><!-- 颜色选中器的使用,只适合文本字体颜色的改变 --><button></button>
可以看到运行结果:
按下按钮后,显示如下:
按下可选框后,先不松手,显示如下:
按下可选框松手后,显示如下:
上面就是在不用java代码设计的情况下使用颜色资源文件的情况。
下面介绍一下使用java代码控制颜色的改变。
二.Java代码中使用颜色资源文件和颜色选择器文件
(一)创建颜色资源文件和颜色选择器文件
1.颜色资源文件的创建可以在XML文件中创建,也可以直接用java代码创建
2.颜色选择器文件必须在XML文件中创建
这里XML中文件的创建和上面的创建是一样的。这里只要介绍java代码调用颜色资源文件和颜色选择器。
(二)java代码调用颜色资源文件和颜色选择器文件
1.xml布局文件设计
- <!-- color颜色的使用 --><!-- 颜色选中器的使用,只适合文本字体颜色的改变 --><button></button>
这里布局文件和上面布局文件的区别是,这里的 android:textColor=" " 没有设置,要在java代码中设置。
2.java代码设计
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //实例化文本对象
- TextView tv = (TextView) findViewById(R.id.main_tv_showcolor);
- //实例化按钮对象
- Button btn = (Button) findViewById(R.id.main_btn_colorselect);
- //实例化可选框对象
- CheckBox cb = (CheckBox) findViewById(R.id.main_cb_check);
- // java代码设计自定义颜色资源前面加0x
- // int color_red=0xff00;
- // 获取颜色资源文件
- int mycolor = getResources().getColor(R.color.myred);
- // 获取颜色选择器文件
- int color_seletot = getResources().getColor(R.color.color_selector);
- // 为文本设置颜色资源
- tv.setTextColor(mycolor);
- // 为按钮和选框设置选中器
- btn.setTextColor(color_seletot);
- cb.setTextColor(color_seletot);
- }
这样设计和在xml中设计是一样的,颜色资源的设置是没有问题的,
但是用java代码设置颜色选择器会可能有失效的情况出现,
所以还是建议尽量在xml文件中设置好,而不在java代码中设置。
以上就是Android的颜色资源的使用和颜色选择器的使用。
三.Java代码中color的一些使用方法
(一)系统颜色
android内置的颜色,比如系统资源中定义的颜色,有以下几个:
BLACK(黑色),BLUE(蓝色),CYAN(青色),GRAY(灰色),GREEN(绿色),RED(红色),WRITE(白色),YELLOW(黄色)等。
使用方法:
Button btn = (Button) findViewById(R.id.btn);
btn.setBackgroundColor(Color.BLUE);
(二)自定义颜色
1.使用16进制数表示
int mycolor = 0xff123456;
Button btn = (Button) findViewById(R.id.btn);
btn.setBackgroundColor(mycolor);
2.利用静态方法argb来设置颜色:
Button btn = (Button) findViewById(R.id.btn);
btn.setBackgroundColor(Color.argb(0xff, 0x00, 0x00, 0x00));
argb()方法的参数依次为透明度,红,绿,蓝的大小,可以理解为浓度,这里组合起来的就是白色。
四.RGB常用颜色对照表
RGB颜色表
白色:rgb(255,255,255) 黑色:rgb(0,0,0) 红色:rgb(255,0,0) 绿色:rgb(0,255,0) 蓝色:rgb(0,0,255) 紫色:rgb(255,0,255) 调整相关数字,便可以得到深浅不一的各种颜色。
| |||||
颜色样式 |
RGB数值 |
颜色代码 |
颜色样式 |
RGB数值 |
颜色代码 |
黑色 |
0,0,0 |
#000000 |
白色 |
255,255,255 |
#FFFFFF |
象牙黑 |
88,87,86 |
#666666 |
天蓝灰 |
202,235,216 |
#F0FFFF |
冷灰 |
128,138,135 |
#808A87 |
灰色 |
192,192,192 |
#CCCCCC |
暖灰 |
128,118,105 |
#808069 |
象牙灰 |
251,255,242 |
#FAFFF0 |
石板灰 |
118,128,105 |
#E6E6E6 |
亚麻灰 |
250,240,230 |
#FAF0E6 |
白烟灰 |
245,245,245 |
#F5F5F5 |
杏仁灰 |
255,235,205 |
#FFFFCD |
蛋壳灰 |
252,230,202 |
#FCE6C9 |
贝壳灰 |
255,245,238 |
#FFF5EE |
红色 |
255,0,0 |
#FF0000 |
黄色 |
255,255,0 |
#FFFF00 |
镉红 |
227,23,13 |
#E3170D |
镉黄 |
255,153,18 |
#FF9912 |
砖红 |
156,102,31 |
#9C661F |
香蕉黄 |
227,207,87 |
#E3CF57 |
珊瑚红 |
255,127,80 |
#FF7F50 |
金黄 |
255,215,0 |
#FFD700 |
番茄红 |
255,99,71 |
#FF6347 |
肉黄 |
255,125,64 |
#FF7D40 |
粉红 |
255,192,203 |
#FFC0CB |
粉黄 |
255,227,132 |
#FFE384 |
印度红 |
176,23,31 |
#B0171F |
橘黄 |
255,128,0 |
#FF8000 |
深红 |
255,0,255 |
#FF00FF |
萝卜黄 |
237,145,33 |
#ED9121 |
黑红 |
116,0,0 |
#990033 |
黑黄 |
85,102,0 |
#8B864E |
绿色 |
0,255,0 |
#00FF00 |
棕色 |
128,42,42 |
#802A2A |
青色 |
0,255,255 |
#00FFFF |
土色 |
199,97,20 |
#C76114 |
黄绿色 |
127,255,0 |
#7FFF00 |
沙棕色 |
244,164,95 |
#F4A460 |
青绿色 |
64,224,205 |
#40E0D0 |
棕褐色 |
210,180,140 |
#D2B48C |
靛青色 |
8,46,84 |
#082E54 |
玫瑰红 |
188,143,143 |
#BC8F8F |
森林绿 |
34,139,34 |
#228B22 |
赫色 |
160,82,45 |
#A0522D |
草绿色 |
107,142,35 |
#6B8E23 |
肖贡土色 |
199,97,20 |
#C76114 |
蓝色 |
0,0,255 |
#0000FF |
肖贡土色 |
160,32,240 |
#A020F0 |
锰蓝 |
3,168,158 |
#03A89E |
淡紫色 |
218,112,214 |
#DA70D6 |
深蓝 |
25,25,112 |
#191970 |
紫罗兰 |
138,43,226 |
#8A2BE2 |
土耳其蓝 |
0,199,140 |
#00C78C |
胡紫色 |
153,51,250 |
#9933FA |
五.颜色值的说明
(一)#RGB ,使用红、绿、蓝三原色的值来表示颜色,
其中红,绿和蓝均采用0-f来表示,如要表示红色可以使用 #f00
(二)#ARGB :使用透明度以及红绿蓝三原色来表示颜色,
其中透明度,红,绿和蓝均采用0-f来表示,如,要表示半透明的红色,可以使用 #8f00
(三)#RRGGBB , 使用红,绿,蓝三原色的值来表示颜色,
与 #RGB 不同的是这里的红绿蓝使用00-ff来表示,如要表示蓝色可以使用 #0000ff
(四)#AARRGGBB 使用透明度及红绿蓝三原色来表示颜色,
其中透明度、红、绿、蓝均采用00-ff来表示。
例如,要表示半透明的绿色可以使用 #8800ff00 , #00 表示完全透明 ff表示完全不透明
总结;Android程序开发中界面中对文字(标题,内容,注释)颜色的设置都是比较规范和统一的,
一般都用到颜色资源来统一这种,而不在xml控件中单一控制。所有颜色资源文件的使用还是比较重要的,
而颜色选择器可以增加特殊效果,在特定情况下可能有需要。
这里的颜色选择器要和按钮背景的颜色选择器区分,这里的颜色选择器是对字体的颜色发生改变的,
而按钮背景的选择器是对按钮的背景进行改变的。