[英]processing hex string to color
我正在從 JSON 文件中讀取十六進制顏色,但需要將它們作為 int 獲取,以便我可以創建顏色。
int col=Integer.parseInt("FF0000",16);
返回16711680
int c = unhex("FF0000");
返回16711680
我該怎么做?
如果您想重新發明輪子,您可以將字符串解析為 RGB 十六進制值“FF”、“00”和“00”,將十六進制值轉換為與 int 值對應的整數(分別為 255、0 和 0)從 0 到 255,然后使用這些 RGB 值創建一個 Color 對象。
不過就我個人而言,我只會使用:
Color red = Color.decode("#FF0000"); //That's definitely red
你混淆了兩件事:
第一件事:像#FF0000
這樣的十六進制值代表整數值。
第二件事:在內部,Processing 將顏色值表示為整數。
第一個概念中的整數與第二個概念中的整數不同。
事實上,十六進制顏色值是 Processing 編輯器的 Processing 中的一個特例,它為您做了一些魔術。 我不知道直接從字符串值到十六進制顏色值的方法。
相反,您應該將 String 值解析為其各個組件,將它們轉換為整數,然后使用三參數color()
函數來創建顏色。
有關更多信息,請參閱此問題: Java 中的十六進制到整數
我所做的只是重新創建這樣的顏色:
int c = Integer.parseInt(obj.getString("color"), 16);
c = color(red(c), green(c), blue(c));
您可以嘗試使用以下方法 -
Color c = Color.parseColor("#c0c0c0");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.