十六进制颜色转换ARGB/RGB

本文介绍如何处理颜色代码及透明度,包括如何将不同透明度的文字语言转换为代码,如十六进制颜色、RGB与ARGB等。并提供实用的代码示例,帮助开发者在开发过程中更好地使用颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发中,我们用的的颜色都是不是 百分之百纯色 ,UI 可能会说,这个颜色(0x FFFFFF) 20%,那个颜色(ff323232)60%,遇到懂得 点技术的 UI 他会直接给你 #66000000 ,或者 #8f323232 的 颜色,你在color中 直接用就行。但是作为一个开发,要会能把  各种  文字语言转换成 代码,【黑色透明30%】。我最初也是在 网上搜索,后来应用。现在准备把一套 颜色的 使用都整理出来。助各位看官在开发中 一站直达。

简单的使用 十六进制 颜色 :

 基本:#e28a22

透明度:#1Ae28a22

RGB:226,138,34

ARGB:26,226,138,34

怎么变成这么样子的呢,一步一步来解析:

拿到十六进制颜色,需要加透明度,百度有很多 别人整理的。我随便粘贴一个:

<!--百分比-开头字母-->
<!--100% —FF-->
<!--95% — F2-->

<!--90% — E6-->
<!--85% — D9-->
<!--80% — CC-->

<!--75% — BF-->
<!--70% — B3-->
<!--65% — A6-->

<!--60% — 99-->
<!--55% — 8C-->
<!--50% — 80-->

<!--45% — 73-->
<!--40% — 66-->
<!--35% — 59-->

<!--30% — 4D-->
<!--25% — 40-->
<!--20% — 33-->

<!--15% — 26-->
<!--10% — 1A-->
<!--5% — 0D-->

<!--0% — 00-->

嗯,网上很多,这个我觉得还是比较正规的,放在0x(#)后面就行 比如 #FFFFFF  45%透明,就是#73FFFFFF

 基本上就可以在color 里用了,如果某些地方只能 用RGB /ARGB 这时候 就需要 用公式转换了

用的地方很少,但也很可能用到,比如地图中 在以前的SDK 中就只支持 RGB /ARGB

 Circle circle = aMap.addCircle(new CircleOptions(). center(new LatLng(bean.getLatitude(), bean.getLongitude())).
  radius(bean.getRadius()).
 fillColor(Color.argb(50, 255, 0, 0)).
strokeColor(Color.argb(120, 255, 0, 0)).
strokeWidth(1));

还有的时候,支持 .getColor(R.color.pf_color_e1e1e1),但是APP 运行起来后 颜色就是不对。 这时候就应该用rgb了

公式也很简单

public void changeArgb(int color){
//int color = 0x1A0078ff;
int alpha = (color & 0xff000000) >>> 24;
int red   = (color & 0x00ff0000) >> 16;
int green = (color & 0x0000ff00) >> 8;
int blue  = (color & 0x000000ff);
}
AGB 的话,注释掉上边那个alpha 就行。

解释:

#AARRGGBB  对应的是 AA =透明度  RR = 红  GG  = 绿  BB  =蓝 ;

如果需要将50%换算成十六进制#AA这两位就行。因为透明度有255 阶

说明 
Ⅰ) 5/10即0.5=50%; 
Ⅱ) y=5*255/10,得到y=127(取整数。。 < …5 >) 
127为十进制,需要换算成十六进制



十六进制颜色代码实际上就是一种特定格式的十六进制数值,用于表示网页、图像编辑软件等环境下的颜色。每种颜色由红(R)、绿(G)、蓝(B)三个分量组成,每个分量占用0-255范围内的整数(即8位二进制),合在一起就构成了24位色。 对于如何将十六进制颜色转换回普通的十六进制数值: 1. **理解结构**:首先你需要明白一个标准的十六进制颜色码是由#符号开头后面跟着6个字符组成的字符串,如`#FFAABB`。这六个字符分别代表RRGGBB形式,也就是两个红色通道、绿色通道以及蓝色通道对应的两位十六进制数字; 2. **去掉前缀并拆分**:如果存在的话先移除前面的井字号(`#`),然后把剩下的部分按照每对连续的两个字符分割成三组,每一组对应于RGB色彩模型的一个组成部分; 3. **转换为十进制**:接下来你可以利用各种工具或编程语言内置函数直接从上述得到的三位两字母串转成其相应的十进制整型值。例如,在Python里可以这样做: ```python hex_color = "FFAABB" r, g, b = tuple(int(hex_color[i:i+2], 16) for i in (0, 2 ,4)) print(f"Red={r}, Green={g}, Blue={b}") ``` 4. 如果需要进一步处理比如算术运算或者其他计算,则可以在获得这三个十进制数值之后再做相应操作即可。 反过来如果你已经有了R/G/B三个分量,并希望将其编码成为单个的HTML/CSS兼容的形式,那么只需按顺序组合起来形成新的字符串就可以了。同样的过程也可以通过程序自动化完成。 以上就是在十六进制颜色码和其他数据之间互相转化的基本步骤。请注意实际应用时还需考虑具体的上下文需求,有时可能还会涉及到透明度(alpha channel),这时就会有ARGB或者RGBA这样的变体了。 --
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值