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

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

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

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

瀟湘沐 2024-01-05 16:27:52
查看完整描述

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 關注
  • 299 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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