帮助将颜色十六进制存储为Java中的整数

时间:2011-01-17 15:12:31

标签: java android hex

我需要在android应用程序中表示十六进制颜色#F0FFF0(存储为整数)。我将其存储为:

int color = 0xF0FFF0;

但是在渲染时颜色似乎很明显(事实上,它是黑色的)。我是否错误地存储了颜色?

4 个答案:

答案 0 :(得分:6)

也许你需要设置alpha。 即。

int color = 0xFFF0FFF0;

其中前两个FF表示alpha是完全不透明的。 看到: http://developer.android.com/reference/android/graphics/Color.html

答案 1 :(得分:6)

Android使用Hex ARGB值,格式为#AARRGGBB。第一对字母AA代表Alpha通道。您必须将十进制不透明度值转换为十六进制值。以下是步骤:

Alpha Hex Value Process

  1. 将您的不透明度作为十进制值并乘以255.因此,如果您有一个50%不透明的块,则十进制值将为.5。例如:.5 x 255 = 127.5
  2. 分数不会转换为十六进制,因此您必须将数字向上或向下舍入到最接近的整数。例如:127.5轮到128; 55.25轮到55.
  3. 在十进制到十六进制转换器中输入您的小数值,例如http://www.binaryhexconverter.com/decimal-to-hex-converter,并转换您的值
  4. 如果您只返回一个值,请在其前面加上零。例如,如果你试图获得5%的不透明度并且你经历了这个过程,那么你最终会得到D的十六进制值。在它前面添加一个零,使它显示为0D。
  5. 这就是你找到alpha通道值的方法。我冒昧地为你整理了一系列价值观。享受!

    十六进制不透明度值

    • 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

答案 2 :(得分:3)

我总是用alpha值指定我的颜色,即:

int color = 0xFFF0FFF0;

如果忽略它,我不确定领先的FF是否隐含。

答案 3 :(得分:1)

不是你没有。

您必须添加Alpha频道。

您的例子是:

int color = 0xFFF0FFF0

我认为它有效!