【问题标题】:What is 0x30 when defining a color?定义颜色时 0x30 是什么?
【发布时间】:2011-08-21 22:22:49
【问题描述】:

我在网上看到一个例子:

private int[] colors = new int[] { 0x30F8F8F8, 0x30EAEAEA };

我不确定第一个字符代表什么,但最后 6 个看起来像十六进制数字。这是正确的吗?

【问题讨论】:

  • 整数是一个以 10 为底的值 int[] {821623032, 820701930} 的十六进制整数表示。这意味着可能取决于应用程序

标签: java android colors hex rgb


【解决方案1】:

根据格式,这些颜色看起来像是 RGBA(或它们的其他重新排序)。

基本上,

0x30 = Alpha component
0xF8 = Red component
0xF8 = Green component
0xF8 = Blue component

如果你知道哪个是alpha,可以用00代替,或者如果是开头,就去掉

0xF8F8F8
0x00F8F8F8

【讨论】:

    【解决方案2】:

    最左边的 2 个数字代表支持 32 位颜色格式的 Alpha 通道(透明度)。数组中的两种颜色是具有相同透明度的灰色阴影。

    另外,30 是一个十六进制数字。

    【讨论】:

      【解决方案3】:

      30 也是一个十六进制数字。它表示十进制的3*16^1 + 0*16^0 = 48。我可能是 alpha 通道,但只有在阅读了使用该数组的方法的文档后才能确定。

      【讨论】:

      • 如何在数组中只定义#F8F8F8?
      • 30 留在外面。但是,根据解释,您最终可能根本看不到任何颜色。在这种情况下,请改用0xFFF8F8F8
      • 使用 0xFFF8F8F8(FF 表示 alpha 表示不透明)
      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      相关资源
      最近更新 更多