Android的颜色值支持常见的四种形式如下所示:
目前创新互联公司已为近1000家的企业提供了网站建设、域名、雅安服务器托管、网站改版维护、企业网站设计、定陶网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#RGB:分别指定红、绿、蓝三原色的值(只支持0~f这16级颜色)来代表颜色。
#ARGB:分别指定红、绿、蓝三原色的值(只支持0~f这16级颜色)及透明度(只支持0~f这16级透明度)来代表颜色。
#RRGGBB:分别指定红、绿、蓝三原色的值(支持00~ff这256级颜色)来代表颜色。
#AARRGGBB:分别指定红、绿、蓝三原色的值(支持00~fff这256级颜色)及透明度(支持00~fff这256级透明度)来代表颜色。
上面四种形式中,A、R、G、B都代表一个十六进制的数,其中A代表透明度,R代表红色的数值,G代表绿色数值,B代表蓝色数值。
Android 一般颜色是十六进制表示的
比如:
黑色: #000000
白色: #FFFFFF
但是在实际使用场景中,设计给的蓝湖中,会显示透明度的色值,给的是上面的表示这个都是100%的颜色值,怎样才能准确的显示百分比色值呢,这句需要参考下面的写法了:
在# 后面加上两位即可
比如:
60%的黑色 : #99000000
75%的红色 :#BFFF0000
8位颜色值:前2位ff为透明度,后6位为颜色值。后6位和6位颜色值一个意识。
通常设置color.xml
?xml version="1.0" encoding="utf-8"?
resources
color name="white"#FFFFFF/color!--白色 --
/resources
其余颜色:
color name="ivory"#FFFFF0 /color !--象牙色 --
color name="lightyellow"#FFFFE0 /color !--亮黄色 --
color name="yellow"#FFFF00 /color !--黄色 --
color name="snow"#FFFAFA /color !--雪白色 --
color name="floralwhite"#FFFAF0 /color !--花白色 --
color name="lemonchiffon"#FFFACD /color !--柠檬绸色 --
color name="cornsilk"#FFF8DC /color !--米绸色 --
color name="seashell"#FFF5EE /color !--海贝色 --
color name="lavenderblush"#FFF0F5 /color !--淡紫红 --
color name="papayawhip"#FFEFD5 /color !--番木色 --
color name="blanchedalmond"#FFEBCD /color !--白杏色 --
color name="mistyrose"#FFE4E1 /color !--浅玫瑰色 --
color name="bisque"#FFE4C4 /color !--桔黄色 --
color name="moccasin"#FFE4B5 /color !--鹿皮色 --
color name="navajowhite"#FFDEAD /color !--纳瓦白 --
color name="peachpuff"#FFDAB9 /color !--桃色 --
color name="gold"#FFD700 /color !--金色 --
color name="pink"#FFC0CB /color !--粉红色 --
color name="lightpink"#FFB6C1 /color !--亮粉红色 --
color name="orange"#FFA500 /color !--橙色 --
color name="lightsalmon"#FFA07A /color !--亮肉色 --
color name="darkorange"#FF8C00 /color !--暗桔黄色 --
color name="coral"#FF7F50 /color !--珊瑚色 --
color name="hotpink"#FF69B4 /color !--热粉红色 --
color name="tomato"#FF6347 /color !--西红柿色 --
color name="orangered"#FF4500 /color !--红橙色 --
color name="deeppink"#FF1493 /color !--深粉红色 --
color name="fuchsia"#FF00FF /color !--紫红色 --
color name="magenta"#FF00FF /color !--红紫色 --
color name="red"#FF0000 /color !--红色 --
color name="oldlace"#FDF5E6 /color !--老花色 --
color name="lightgoldenrodyellow"#FAFAD2 /color !--亮
金黄色 --
color name="linen"#FAF0E6 /color !--亚麻色 --
color name="antiquewhite"#FAEBD7 /color !--古董白 --
color name="salmon"#FA8072 /color !--鲜肉色 --
color name="ghostwhite"#F8F8FF /color !--幽灵白 --
color name="mintcream"#F5FFFA /color !--薄荷色 --
color name="whitesmoke"#F5F5F5 /color !--烟白色 --
color name="beige"#F5F5DC /color !--米色 --
color name="wheat"#F5DEB3 /color !--浅黄色 --
color name="sandybrown"#F4A460 /color !--沙褐色 --
color name="azure"#F0FFFF /color !--天蓝色 --
color name="honeydew"#F0FFF0 /color !--蜜色 --
color name="aliceblue"#F0F8FF /color !--艾利斯兰 --
color name="khaki"#F0E68C /color !--黄褐色 --
color name="lightcoral"#F08080 /color !--亮珊瑚色 --
color name="palegoldenrod"#EEE8AA /color !--苍麒麟色 --
color name="violet"#EE82EE /color !--紫罗兰色 --
color name="darksalmon"#E9967A /color !--暗肉色 --
color name="lavender"#E6E6FA /color !--淡紫色 --
color name="lightcyan"#E0FFFF /color !--亮青色 --
color name="burlywood"#DEB887 /color !--实木色 --
color name="plum"#DDA0DD /color !--洋李色 --
color name="gainsboro"#DCDCDC /color !--淡灰色 --
color name="crimson"#DC143C /color !--暗深红色 --
color name="palevioletred"#DB7093 /color !--苍紫罗兰色
--
color name="goldenrod"#DAA520 /color !--金麒麟色 --
color name="orchid"#DA70D6 /color !--淡紫色 --
color name="thistle"#D8BFD8 /color !--蓟色 --
color name="lightgray"#D3D3D3 /color !--亮灰色 --
color name="lightgrey"#D3D3D3 /color !--亮灰色 --
color name="tan"#D2B48C /color !--茶色 --
color name="chocolate"#D2691E /color !--巧可力色 --
color name="peru"#CD853F /color !--秘鲁色 --
color name="indianred"#CD5C5C /color !--印第安红 --
color name="mediumvioletred"#C71585 /color !--中紫罗兰
色 --
color name="silver"#C0C0C0 /color !--银色 --
color name="darkkhaki"#BDB76B /color !--暗黄褐色
color name="rosybrown"#BC8F8F /color !--褐玫瑰红 --
color name="mediumorchid"#BA55D3 /color !--中粉紫色 --
color name="darkgoldenrod"#B8860B /color !--暗金黄色 --
color name="firebrick"#B22222 /color !--火砖色 --
color name="powderblue"#B0E0E6 /color !--粉蓝色 --
color name="lightsteelblue"#B0C4DE /color !--亮钢兰色
--
color name="paleturquoise"#AFEEEE /color !--苍宝石绿 --
color name="greenyellow"#ADFF2F /color !--黄绿色 --
color name="lightblue"#ADD8E6 /color !--亮蓝色 --
color name="darkgray"#A9A9A9 /color !--暗灰色 --
color name="darkgrey"#A9A9A9 /color !--暗灰色 --
color name="brown"#A52A2A /color !--褐色 --
color name="sienna"#A0522D /color !--赭色 --
color name="darkorchid"#9932CC /color !--暗紫色 --
color name="palegreen"#98FB98 /color !--苍绿色 --
color name="darkviolet"#9400D3 /color !--暗紫罗兰色 --
color name="mediumpurple"#9370DB /color !--中紫色 --
color name="lightgreen"#90EE90 /color !--亮绿色 --
color name="darkseagreen"#8FBC8F /color !--暗海兰色 --
color name="saddlebrown"#8B4513 /color !--重褐色 --
color name="darkmagenta"#8B008B /color !--暗洋红 --
color name="darkred"#8B0000 /color !--暗红色 --
color name="blueviolet"#8A2BE2 /color !--紫罗兰蓝色
color name="lightskyblue"#87CEFA /color !--亮天蓝色 --
color name="skyblue"#87CEEB /color !--天蓝色 --
color name="gray"#808080 /color !--灰色 --
color name="grey"#808080 /color !--灰色 --
color name="olive"#808000 /color !--橄榄色 --
color name="purple"#800080 /color !--紫色 --
color name="maroon"#800000 /color !--粟色 --
color name="aquamarine"#7FFFD4 /color !--碧绿色 --
color name="chartreuse"#7FFF00 /color !--黄绿色 --
color name="lawngreen"#7CFC00 /color !--草绿色 --
color name="mediumslateblue"#7B68EE /color !--中暗蓝色
--
color name="lightslategray"#778899 /color !--亮蓝灰 --
color name="lightslategrey"#778899 /color !--亮蓝灰 --
color name="slategray"#708090 /color !--灰石色 --
color name="slategrey"#708090 /color !--灰石色 --
color name="olivedrab"#6B8E23 /color !--深绿褐色 --
color name="slateblue"#6A5ACD /color !--石蓝色 --
color name="dimgray"#696969 /color !--暗灰色 --
color name="dimgrey"#696969 /color !--暗灰色 --
color name="mediumaquamarine"#66CDAA /color !--中绿色
--
color name="cornflowerblue"#6495ED /color !--菊兰色 --
color name="cadetblue"#5F9EA0 /color !--军兰色 --
color name="darkolivegreen"#556B2F /color !--暗橄榄绿
color name="indigo"#4B0082 /color !--靛青色 --
color name="mediumturquoise"#48D1CC /color !--中绿宝石
--
color name="darkslateblue"#483D8B /color !--暗灰蓝色 --
color name="steelblue"#4682B4 /color !--钢兰色 --
color name="royalblue"#4169E1 /color !--皇家蓝 --
color name="turquoise"#40E0D0 /color !--青绿色 --
color name="mediumseagreen"#3CB371 /color !--中海蓝 --
color name="limegreen"#32CD32 /color !--橙绿色 --
color name="darkslategray"#2F4F4F /color !--暗瓦灰色 --
color name="darkslategrey"#2F4F4F /color !--暗瓦灰色 --
color name="seagreen"#2E8B57 /color !--海绿色 --
color name="forestgreen"#228B22 /color !--森林绿 --
color name="lightseagreen"#20B2AA /color !--亮海蓝色 --
color name="dodgerblue"#1E90FF /color !--闪兰色 --
color name="midnightblue"#191970 /color !--中灰兰色 --
color name="aqua"#00FFFF /color !--浅绿色 --
color name="cyan"#00FFFF /color !--青色 --
color name="springgreen"#00FF7F /color !--春绿色 --
color name="lime"#00FF00 /color !--酸橙色 --
color name="mediumspringgreen"#00FA9A /color !--中春绿
色 --
color name="darkturquoise"#00CED1 /color !--暗宝石绿 --
color name="deepskyblue"#00BFFF /color !--深天蓝色 --
color name="darkcyan"#008B8B /color !--暗青色 --
color name="teal"#008080 /color !--水鸭色 --
color name="green"#008000 /color !--绿色 --
color name="darkgreen"#006400 /color !--暗绿色 --
color name="blue"#0000FF /color !--蓝色 --
color name="mediumblue"#0000CD /color !--中兰色 --
color name="darkblue"#00008B /color !--暗蓝色 --
color name="navy"#000080 /color !--海军色 --
color name="black"#000000 /color !--黑色 --
在日常的android开发过程中,UI设计师一般都会或多或少的做一些不同透明度的背景,从而提高交互效果。 一般这个时候设计师们都会丢给我们一个色值,然后告诉我们,透明度30%,40% ......。 如果我们这个时候是给一个view添加透明度。 我们可以直接通过设置 alpha属性。但是如果是一个shape组件呢。 没有 alpha属性怎么办?
这个时候我们就需要把一个普通的色值转换成带有透明度表示的色值。
how do we it?
一个正常的16进制的色值格式是这样的: #RRGGBB。如果我们要给这个色值设置透明度,那就在他数值之前添加两个字节去表示不透明度。
例如:#C0C0C0 这个色值,如果我们要设置透明度为30%,那就是变成#4DC0C0C0 。 #4DC0C0C0就是#C0C0C0的30%透明度的显示。
你问我,这个4D是哪里来的,看底下,左边那列表示透明度,右边是值。你想设置多少就是多少。 爽吧!!!
从FF开始表示完全不透明,到00表示完全透明。 自己理解吧. 哈哈哈!
以上,亲测可用,拿走不谢!
参考链接:
基本介绍
思路:
一
首先需要一张图片,这里由于我的强迫症,我没有写死,而是去图库选择一张照片。
二
获取图片的宽、高,为了精度,这里一定要设置BitmapFactory.Options,通过坐标的形式来获取RGB值,也就是说把一张图片通过坐标分为若干个小点。
上代码:
private Bitmap comp(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
if (baos.toByteArray().length / 1024 1024) {
//判断如果图片大于1M,进行压缩避免在生成图片(BitmapFactory.decodeStream)时溢出
baos.reset();//重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, 50, baos);
//这里压缩50%,把压缩后的数据存放到baos中
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
BitmapFactory.Options newOpts = new BitmapFactory.Options();
//开始读入图片,此时把options.inJustDecodeBounds 设回true了
newOpts.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
newOpts.inJustDecodeBounds = false;
int w = newOpts.outWidth;
int h = newOpts.outHeight;
//现在主流手机比较多是800*500分辨率,所以高和宽我们设置为
float hh = 800f;//这里设置高度为800f
float ww = 500f;//这里设置宽度为500f
//缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = 1;//be=1表示不缩放
if (w h w ww) {//如果宽度大的话根据宽度固定大小缩放
be = (int) (newOpts.outWidth / ww);
} else if (w h h hh) {//如果高度高的话根据宽度固定大小缩放
be = (int) (newOpts.outHeight / hh);
}
if (be = 0)
be = 1;
newOpts.inSampleSize = be;//设置缩放比例
//重新读入图片,注意此时已经把options.inJustDecodeBounds 设回false了
isBm = new ByteArrayInputStream(baos.toByteArray());
bitmap = BitmapFactory.decodeStream(isBm, null, newOpts);
return compressImage(bitmap);//压缩好比例大小后再进行质量压缩
}
重点:一定要设置BitmapFactory.Options newOpts = new BitmapFactory.Options();否则坐标获取不准确
三
通过getPixel(x, y)方法通过坐标拿到我们需要的色值即可,比较简单。
iv_image.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
int color = bitmap.getPixel(x, y);
// 如果你想做的更细致的话 可以把颜色值的R G B 拿到做响应的处理
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
int a = Color.alpha(color);
Log.i(TAG, "r=" + r + ",g=" + g + ",b=" + b);
tv_rgb.setText("a=" + a + ",r=" + r + ",g=" + g + ",b="
+ b);
btnColor.setTextColor(Color.rgb(r, g, b));
}
return true;
}
});