【问题标题】:Conveter RGB to HEX code in android在android中将RGB转换为HEX代码
【发布时间】:2015-11-02 00:21:21
【问题描述】:

我想将 RGB 颜色转换为 HEX 代码,所以下面是我的代码

ColorPickerDialog colorPickerDialog = new ColorPickerDialog(getActivity(), initialColor, new ColorPickerDialog.OnColorSelectedListener() {

                @Override
                public void onColorSelected(int color) {

                    String rgbString = "R: " + Color.red(color) + " B: " + Color.blue(color) + " G: " + Color.green(color);
                    int[] c={Color.red(color),Color.green(color),Color.blue(color)};
                    int sd=getHexColor(c);
                    System.out.println("HEx "+sd);
                }

            });
            colorPickerDialog.show();

getHexColor函数

public     int getHexColor(int[] color) {
    return android.graphics.Color.rgb(color[0], color[1], color[2]);
}

当我运行上面的代码时,它给了我如下所示的十六进制代码

   -16569089  but i want like this   #23ab34  

知道我该如何解决这个问题吗?您的所有建议都是可观的。

【问题讨论】:

  • 可以使用 String hex = String.format("#%02x%02x%02x", r, g, b);
  • 达希尔沙阿:工作
  • 请采纳答案,这样也能帮助到其他人

标签: android hex rgb


【解决方案1】:

Android 颜色值包含 alpha 值。 ARGB

你可以转换颜色。

int intColor = -16569089;
String hex = Integer.toHexString(intColor);

//prints ff032cff , A:ff, R:3, G:2c, B: ff
System.out.println(hex);

// remove alpha channel
int intColorRGB = intColor & 0x00ffffff;
String hex2 = Integer.toHexString(intColorRGB);

// prints 32cff, ignore leading 0 (int value)       
System.out.println(hex2);

【讨论】:

    【解决方案2】:

    你可以使用

    String hex = String.format("#%02x%02x%02x", r, g, b);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-17
      • 2018-01-31
      • 2022-08-17
      • 2018-02-25
      • 2013-04-03
      • 2016-08-11
      • 2012-02-03
      • 2014-05-11
      相关资源
      最近更新 更多