亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數組中的 rgba 轉換為 Hex?

如何將數組中的 rgba 轉換為 Hex?

瀟湘沐 2024-01-05 16:27:52
附加快照[快照] 我將檢索 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);    }}
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

有很多方法可以實現這一點:

第一個解決方案:


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;

}

第一個解決方案返回十六進制字符串,第二個解決方案返回整數表示的十六進制。


查看完整回答
反對 回復 2024-01-05
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

使用該類java.awt.Color,您可以獲取 RGB 值。

String color2hex(Color color) {
    return String.format("#%08X", color.getRGB());
}


查看完整回答
反對 回復 2024-01-05
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

使用一些按位運算符快速完成它。這也可用于有效地打包 32 位顏色。


String rgba2hex(int red, int green, int blue, int alpha) {

    return String.format("0x%08X", rgba(red, green, blue, alpha));

}


int rgba(int red, int green, int blue, int alpha) {

    int rgba = 0;

    rgba |= (alpha & 0xff) << 24;

    rgba |= (red & 0xff) << 16;

    rgba |= (green & 0xff) << 8;

    rgba |= (blue & 0xff);

    return rgba;

}


// reverse it

int[] rgba(int rgba) {

    int[] color = new int[4];

    color[4] = (rgba >> 24) & 0xff; // alpha

    color[1] = (rgba >> 16) & 0xff; // red

    color[2] = (rgba >> 8) & 0xff; // green

    color[3] = rgba & 0xff; // blue

    return color;

}


查看完整回答
反對 回復 2024-01-05
  • 3 回答
  • 0 關注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號