2015-12-31 121 views
0

我有(可惜不管怎麼說..)顏色,這是HTML格式使用:安卓:轉換顏色`RGBA()`以十六進制格式

rgba(31,194,174,1)

我想將其轉換爲Android原生十六進制顏色格式#AARRGGBB。 任何人都可以請幫助我這個。

我嘗試以下方法,但它並沒有工作:

... 
tabLayout.setBackgroundColor(getTabLayoutBackgroundColor(jsonObject)); 
... 

private int getTabLayoutBackgroundColor(JSONObject jsonObject) { 
    // tab color 
    String[] rgba_tab = new String[4]; 
    try { 
     rgba_tab = jsonObject.getString("navbar-background-color").split("\\(")[1].split("\\)")[0].split(","); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return Color.argb(Integer.parseInt(rgba_tab[3]), Integer.parseInt(rgba_tab[0]), Integer.parseInt(rgba_tab[1]), Integer.parseInt(rgba_tab[2])); 
} 

我要解析以下響應動態設置顏色,我喜歡控制工具欄,TabLayout背景和TabLayout文本顏色:

{ 
    "primary-color": "rgba(214,34,48,1)", 
    "background-color": "default", 
    "navbar-background-color": "rgba(214,34,48,1)", 
    "navbar-font-color": "rgba(255,255,255,1)", 
    "font": "Arial" 
} 
+0

請注意HTML/CSS RGBA使用[0.0 - 1.0]之間float值用於α-。它不直接作爲整數映射。 – harism

回答

0

試試這個: 顏色c = new Color(i,j,k); Integer.toHexString(c.getRGB()& 0x00ffffff));

2

嘗試使用:

String hex = String.format("#%02x%02x%02x%02x", alpha,red, green, blue); 
+0

你的意思是說,我應該用我的數組元素替換alpha,red,green,blue,對吧? –

相關問題