为了账号安全,请及时绑定邮箱和手机立即绑定

了解Android上的颜色(六个字符)

了解Android上的颜色(六个字符)

慕斯王 2019-08-14 16:28:41
了解Android上的颜色(六个字符)我试图了解Android中的颜色是如何工作的。我把这个颜色设置为我的背景LinearLayout,然后我得到一个透明的背景灰色:<gradient android:startColor="#b4555555" android:endColor="#b4555555"  android:angle="270.0" />如果我删除最后两个字符(55),我会得到一个纯色,失去透明度。我试图找到一个页面,我可以看到有关此的一些解释,但我找不到它。
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

如果提供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(完全非 - 透明昏暗的小指)。

有关支持的格式,请参阅“颜色”文档


查看完整回答
反对 回复 2019-08-14
?
动漫人物

TA贡献1815条经验 获得超10个赞

从@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>

你也可以只谷歌“数字到十六进制”,其中'数字'是0到255之间的任何值。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 369 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信