猿问

如何将数组中的 rgba 转换为 Hex?

附加快照[快照] 我将检索 7 天之一的背景颜色并转换为十六进制。一天中的时间会在午夜自动选择,并以紫色突出显示。我将从 7 天列表中选择突出显示的时间。我运行了一个数组,并在 7 天之一中得到了这个结果 - “ rgb(92, 50, 150) none Repeat scroll 0% 0% / auto padding-box border-box ” 但我的转换没有运行并抛出此错误 -无枚举常量 org.openqa.selenium.support.Colors.RGBA(0, 0, 0, 0) NONE REPEAT SCROLL 0% 0% / AUTO PADDING-BOX BORDER-BOX

周日:关闭
周一:中午 12:00 - 晚上 8:00
周二:下午 1:00 - 下午 6:00
周三:上午 10:00 - 下午 6:00 周四
:中午 12:00 - 晚上 8:00
周五:10 :00 am - 6:00 pm
周六:10:00 am - 5:00 pm

  WebElement saturday =driver.findElement(By.xpath("//*[@id='hours']/div/div/div/div[7]"));

    String saturdayHrs= saturday.getCssValue("background");

    String selectSaturday = Color.fromString(saturdayHrs).asHex();




    String [] selectDate = {selectSunday, selectMonday, selectTuesday, selectWednesday, selectThursday, selectFriday, selectSaturday};


    for (String dtColor:selectDate) {

        System.out.println(dtColor);

    }

}


潇湘沐
浏览 157回答 3
3回答

慕森卡

有很多方法可以实现这一点:第一个解决方案:String hex = String.format("#%02x%02x%02x%02x", a, r, g, b);第二个解决方案:public int toHex(Color color) {    String alpha = addPadding(Integer.toHexString(color.getAlpha()));    String red = addPadding(Integer.toHexString(color.getRed()));    String green = addPadding(Integer.toHexString(color.getGreen()));    String blue = addPadding(Integer.toHexString(color.getBlue()));    String hex = "0x" + alpha + red + green + blue;    return Integer.parseInt(hex, 16);}private static final String addPadding(String s) {    return (s.length() == 1) ? "0" + s : s;}第一个解决方案返回十六进制字符串,第二个解决方案返回整数表示的十六进制。

海绵宝宝撒

使用该类java.awt.Color,您可以获取 RGB 值。String color2hex(Color color) {     return String.format("#%08X", color.getRGB()); }

饮歌长啸

使用一些按位运算符快速完成它。这也可用于有效地打包 32 位颜色。String rgba2hex(int red, int green, int blue, int alpha) {&nbsp; &nbsp; return String.format("0x%08X", rgba(red, green, blue, alpha));}int rgba(int red, int green, int blue, int alpha) {&nbsp; &nbsp; int rgba = 0;&nbsp; &nbsp; rgba |= (alpha & 0xff) << 24;&nbsp; &nbsp; rgba |= (red & 0xff) << 16;&nbsp; &nbsp; rgba |= (green & 0xff) << 8;&nbsp; &nbsp; rgba |= (blue & 0xff);&nbsp; &nbsp; return rgba;}// reverse itint[] rgba(int rgba) {&nbsp; &nbsp; int[] color = new int[4];&nbsp; &nbsp; color[4] = (rgba >> 24) & 0xff; // alpha&nbsp; &nbsp; color[1] = (rgba >> 16) & 0xff; // red&nbsp; &nbsp; color[2] = (rgba >> 8) & 0xff; // green&nbsp; &nbsp; color[3] = rgba & 0xff; // blue&nbsp; &nbsp; return color;}
随时随地看视频慕课网APP

相关分类

Java
我要回答