【问题标题】:Android convert color int to hexa StringAndroid将颜色int转换为十六进制字符串
【发布时间】:2011-05-29 05:56:59
【问题描述】:
public static int RGB(float[] hsv) {
    return Color.HSVToColor(hsv);
}

这个函数添加一个int,froma颜色。如何将该 int 转换为六进制字符串:#efefef

【问题讨论】:

标签: android colors


【解决方案1】:

st0le 的答案在颜色方面是不正确的。如果第一个颜色分量为 0 则不起作用。所以 toHexString 没用。

但是此代码将按预期工作:

String strColor = String.format("#%06X", 0xFFFFFF & intColor);

【讨论】:

  • 你完全正确。我不明白为什么其他人不赞成你的回答。还是谢谢你!
  • 我得到了不同的答案。我的 R=71、G=159 和 B=83,它显示的十六进制是 6C94C,但实际上是 479f53
  • 警告:如果使用 alpha 通道,此 6 位版本将不适用于 8 位六色。
  • 对于8位颜色:String.format("#%06X", 0xFFFFFFFF & intColor);
  • 仅供参考:此答案不支持 Alpha 通道。
【解决方案2】:

这里有两种将整数转换为十六进制字符串的方法...

    int  n = 123456;
    System.out.println(String.format("#%X", n)); //use lower case x for lowercase hex
    System.out.println("#"+Integer.toHexString(n));

【讨论】:

    【解决方案3】:

    如果要转成javascript格式:

    val hexColor = String.format("%06X", 0xFFFFFFFF.and(R.color.text.toColorInt(context).toLong()))
    
    val javascriptHexColor = "#" + hexColor.substring(2) + hexColor.substring(0, 2)
    

    【讨论】:

      【解决方案4】:

      这样使用

      Java:

       String hexColor = "#" + Integer.toHexString(ContextCompat.getColor(context, R.color.colorTest))
      

      科特林:

      var hexColor = "#${Integer.toHexString(ContextCompat.getColor(context, R.color.colorTest))}"
      

      【讨论】:

        猜你喜欢
        • 2014-10-02
        • 2012-11-24
        • 2012-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 2011-04-06
        • 2019-08-04
        相关资源
        最近更新 更多