我试图了解Android中的颜色是如何工作的。我将此颜色设置为LinearLayout
的背景,并且我得到一个透明的背景灰色:
<gradient android:startColor="#b4555555" android:endColor="#b4555555"
android:angle="270.0" />
如果我删除最后两个字符(55),我会得到一个纯色,失去透明度。我试图找到一个页面,我可以看到有关此的一些解释,但我找不到它。
答案 0 :(得分:1153)
Android使用十六进制ARGB值,格式为#AARRGGBB。第一对字母AA代表alpha通道。您必须将十进制不透明度值转换为十六进制值。以下是步骤:
Alpha Hex Value Process
这就是你找到alpha通道值的方法。我冒昧地为你整理了一系列价值观。享受!
十六进制不透明度值
答案 1 :(得分:174)
关闭@BlondeFurious的答案,这里有一些Java代码可以将每个十六进制值从100%变为0%alpha:
for (double i = 1; i >= 0; i -= 0.01) {
i = Math.round(i * 100) / 100.0d;
int alpha = (int) Math.round(i * 255);
String hex = Integer.toHexString(alpha).toUpperCase();
if (hex.length() == 1)
hex = "0" + hex;
int percent = (int) (i * 100);
System.out.println(String.format("%d%% — %s", percent, hex));
}
输出:
100% — FF
99% — FC
98% — FA
97% — F7
96% — F5
95% — F2
94% — F0
93% — ED
92% — EB
91% — E8
90% — E6
89% — E3
88% — E0
87% — DE
86% — DB
85% — D9
84% — D6
83% — D4
82% — D1
81% — CF
80% — CC
79% — C9
78% — C7
77% — C4
76% — C2
75% — BF
74% — BD
73% — BA
72% — B8
71% — B5
70% — B3
69% — B0
68% — AD
67% — AB
66% — A8
65% — A6
64% — A3
63% — A1
62% — 9E
61% — 9C
60% — 99
59% — 96
58% — 94
57% — 91
56% — 8F
55% — 8C
54% — 8A
53% — 87
52% — 85
51% — 82
50% — 80
49% — 7D
48% — 7A
47% — 78
46% — 75
45% — 73
44% — 70
43% — 6E
42% — 6B
41% — 69
40% — 66
39% — 63
38% — 61
37% — 5E
36% — 5C
35% — 59
34% — 57
33% — 54
32% — 52
31% — 4F
30% — 4D
29% — 4A
28% — 47
27% — 45
26% — 42
25% — 40
24% — 3D
23% — 3B
22% — 38
21% — 36
20% — 33
19% — 30
18% — 2E
17% — 2B
16% — 29
15% — 26
14% — 24
13% — 21
12% — 1F
11% — 1C
10% — 1A
9% — 17
8% — 14
7% — 12
6% — 0F
5% — 0D
4% — 0A
3% — 08
2% — 05
1% — 03
0% — 00
JavaScript版本如下:
var text = document.getElementById('text');
for (var i = 1; i >= 0; i -= 0.01) {
i = Math.round(i * 100) / 100;
var alpha = Math.round(i * 255);
var hex = (alpha + 0x10000).toString(16).substr(-2).toUpperCase();
var perc = Math.round(i * 100);
text.innerHTML += perc + "% — " + hex + " (" + alpha + ")</br>";
}
<div id="text"></div>
您也可以只使用Google“数字到十六进制”,其中“数字”是0到255之间的任何值。
答案 2 :(得分:164)
如果您提供6个十六进制数字,则表示RGB(红色,绿色和蓝色的每个值为2个十六进制数字)。
如果你提供8个十六进制数字,它是一个ARGB(分别为alpha,red,green和blue的每个值分别为2个十六进制数字)。
因此,通过删除最后的55,你将从A = B4,R = 55,G = 55,B = 55(大部分为透明灰色)变为R = B4,G = 55,B = 55(a完全不透明的暗粉红色)。
有关支持的格式,请参阅"Color" documentation。
答案 3 :(得分:33)
这些是用于设置文字颜色不透明度级别的转换。
DE000000
8A000000
61000000
1F000000
FFFFFFFF
B3FFFFFF
80FFFFFF
1FFFFFFF
答案 4 :(得分:16)
在Android上,颜色可以指定为RGB或ARGB。
http://en.wikipedia.org/wiki/ARGB
在RGB中,每种颜色(红色,绿色,蓝色)都有两个字符,而在ARGB中,您有另外两个字符用于Alpha通道。
所以,如果你有8个字符,它是ARGB,前两个字符指定alpha通道。如果你删除前两个字符,它只有RGB(纯色,没有alpha /透明度)。如果要在Java源代码中指定颜色,则必须使用:
int Color.argb (int alpha, int red, int green, int blue)
alpha Alpha component [0..255] of the color
red Red component [0..255] of the color
green Green component [0..255] of the color
blue Blue component [0..255] of the color
参考: argb
答案 5 :(得分:7)
8位十六进制颜色值是ARGB(Alpha,红色,绿色,蓝色)的表示,而6位数值仅假设100%不透明度(完全不透明)并且仅定义RGB值。因此,要使其完全不透明,您可以使用#FF555555,或只使用#555555。每个2位十六进制值是一个字节,表示0-255的值。
答案 6 :(得分:0)
在Android上,颜色可以采用以下格式声明
#AARRGGBB
AA
-是我们最感兴趣的部分,代表alpha通道
RR
GG
BB
-分别是红色,绿色和蓝色通道
现在,为了增加颜色的透明度,我们需要在其前面加上代表alpha(透明度)的十六进制值。
例如,如果要将80%的透明度值设置为黑色(#000000
,则需要在其前面加上CC
,因此,我们最终得到以下颜色资源{{1 }}。
您可以在我的博客上详细了解它 https://androidexplained.github.io/android/ui/2020/10/12/hex-color-code-transparency.html
答案 7 :(得分:0)
十六进制代码中的颜色写为
# AA RR GG BB
# Alpha 红色 绿色 蓝色
对于每个组 (AA,RR,GG,BB) 可能的值是:
-> 00 到 FF in Hex ,即 0 到 255 十进制
所以要改变颜色的Alpha/AA/Transparency,你只需要改变由AA组表示的十六进制字符串中的前两个十六进制字符
对于 50% ->
255 x 0.50= 128(近似/四舍五入)
并转换
128 到十六进制
= 08
So Green #00FF00 与 50% Alpha/透明度 将是 #0800FF00
答案 8 :(得分:0)
使用这个表(我更喜欢把它放在colors.xml中以便快速搜索)
<!--Percent to hex conversion table-->
<!--% 0 1 2 3 4 5 6 7 8 9-->
<!--0 00 03 05 08 0A 0D 0F 12 14 17-->
<!--1 19 1C 1F 21 24 26 29 2B 2E 30-->
<!--2 33 36 38 3B 3D 40 42 45 47 4A-->
<!--3 4D 4F 52 54 57 59 5C 5E 61 63-->
<!--4 66 69 6B 6E 70 73 75 78 7A 7D-->
<!--5 80 82 85 87 8A 8C 8F 91 94 96-->
<!--6 99 9C 9E A1 A3 A6 A8 AB AD B0-->
<!--7 B3 B5 B8 BA BD BF C2 C4 C7 C9-->
<!--8 CC CF D1 D4 D6 D9 DB DE E0 E3-->
<!--9 E6 E8 EB ED F0 F2 F5 F7 FA FC-->
答案 9 :(得分:-1)
在新的chrome版本(可能是67.0.3396.62)中,CSS十六进制颜色可以使用此模型显示,
例如:
div{
background-color:#FF00FFcc;
}
cc 是不透明的,但旧的chrome不支持该mod