请教大神,再JAVA里 怎么把rgba转换成#类型呢??

我现在得到的是一个 string 类型  rgba(102, 0, 255, 0.506)

怎么把这个转换成 # 这样的类型呢?我的意思是转换成 #33333 这样的?

RGBA你有没有查过资料?最后的那个数值是alpha。是透明度。这个alpha和RGB本身是相互独立的。
rgb(a,b,c)对应的是(a<<16 | b<<8 | c)
得到的表达式应该是:#ffffff 这样的,6个十六进制数表示的。

你写的#33333 这是5个16进制数,不知道你这个是搞什么鬼。

楼上说的比较清楚了,首先你要知道RGBA的含义是什么,需要知道#FB00DC这样的颜色表示方法是什么。

颜色表示的方法有很多种,RGBA是一种,四个字母分别对应了红、绿、蓝、透明度的值,JAVA中四个的取值范围都是0-255.

而#ff6edc这样的形式是用16位进制数表示颜色的,ff代表红色的值,对应十进制数255,6e对应绿色的值,对应十进制数0,dc对应蓝颜色的值,对应十进制的数220;

如果你在java中知道了一个颜色对象,比如Color对象,可以拿到其红绿蓝三颜色的对应值,然后调用Integer.thHexString(rValue);就可以将十进制的值转换为16进制的对应值,三个转换完之后连接到一起就是你要的了。

        Color color = new Color(255, 110, 220);
        int rValue = color.getRed();
        int gValue = color.getGreen();
        int bValue = color.getBlue();

        String r16Str = Integer.toHexString(rValue);
        String g16Str = Integer.toHexString(gValue);
        String b16Str = Integer.toHexString(bValue);

        System.out.println("Color(255,110,220)对应16进制颜色表示为:#" + r16Str + g16Str
                + b16Str);

输出结果如下:
Color(251,0,220)对应16进制颜色表示为:#ff6edc

注意转换的时候,如果是一位需要在前面补0.