Java Color與16進(jìn)制字符串互相轉(zhuǎn)換

1.原理

????????主要是調(diào)用了toHexString(將int類型轉(zhuǎn)為16進(jìn)制字符串)瘪菌、parseInt(將字符串解析為int)這兩個(gè)方法。

2.代碼

public static void main(String[] args) {
        String hexString = colorToHexValue(Color.RED);
        System.out.println("16進(jìn)制字符串:" + hexString);
        Color color = fromStrToARGB(hexString);
        System.out.println("16進(jìn)制字符串轉(zhuǎn)為顏色的ARGB值:("+String.valueOf(color.getAlpha())+","+String.valueOf(color.getRed())+","
        +String.valueOf(color.getGreen())+","+String.valueOf(color.getBlue())+")");
    }

    private static String colorToHexValue(Color color) {
        return intToHexValue(color.getAlpha()) + intToHexValue(color.getRed()) + intToHexValue(color.getGreen()) + intToHexValue(color.getBlue());
    }

    private static String intToHexValue(int number) {
        String result = Integer.toHexString(number & 0xff);
        while (result.length() < 2) {
            result = "0" + result;
        }
        return result.toUpperCase();
    }

    private static Color fromStrToARGB(String str) {
        String str1 = str.substring(0, 2);
        String str2 = str.substring(2, 4);
        String str3 = str.substring(4, 6);
        String str4 = str.substring(6, 8);
        int alpha = Integer.parseInt(str1, 16);
        int red = Integer.parseInt(str2, 16);
        int green = Integer.parseInt(str3, 16);
        int blue = Integer.parseInt(str4, 16);
        Color color = new Color(red, green, blue, alpha);
        return color;
    }

3.效果

效果圖.png

4.關(guān)鍵點(diǎn)

4.1 toHexString:沒啥好說的固蚤,JDK提供的將整數(shù)轉(zhuǎn)為16進(jìn)制字符串。

4.2 number & 0xff : 確保int類型數(shù)據(jù)只有后8位是有效的,高24位都是無效的(都是0),int類型是32位翘鸭,但是顏色值最大就是255,只需要8位就可以滿足需求戳葵,因此就要確保傳入的數(shù)據(jù)是合法的顏色值就乓,而大于255的數(shù)據(jù)就要當(dāng)作255處理,此時(shí)有兩種辦法,第一種就是本文這種處理方法档址,第二種就是加入判斷,如果數(shù)據(jù)大于255邻梆,那么就等于255守伸,如果小于則不處理。相比較而言浦妄,本文處理方法是代碼最少的處理方法并且效率高尼摹。

4.3 &:按位“與”操作,如果二進(jìn)制碼同位都是1剂娄,那么結(jié)果就是1蠢涝,否則就是0。

4.4 0xff: 0x代表它后面的是十六進(jìn)制的數(shù)字;f就是15阅懦,轉(zhuǎn)為2進(jìn)制就是1111,2個(gè)f則是1111 1111(10進(jìn)制的255)和二,前面24位都是0,此時(shí)進(jìn)行與操作耳胎,就確保了只有0——255范圍內(nèi)的int值是有效顏色值惯吕。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怕午,隨后出現(xiàn)的幾起案子废登,更是在濱河造成了極大的恐慌,老刑警劉巖郁惜,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堡距,死亡現(xiàn)場離奇詭異,居然都是意外死亡兆蕉,警方通過查閱死者的電腦和手機(jī)羽戒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恨樟,“玉大人半醉,你說我怎么就攤上這事∪笆酰” “怎么了缩多?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長养晋。 經(jīng)常有香客問我衬吆,道長,這世上最難降的妖魔是什么绳泉? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任逊抡,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冒嫡。我一直安慰自己拇勃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布孝凌。 她就那樣靜靜地躺著方咆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蟀架。 梳的紋絲不亂的頭發(fā)上瓣赂,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音片拍,去河邊找鬼煌集。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捌省,可吹牛的內(nèi)容都是我干的苫纤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼所禀,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼方面!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起色徘,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤恭金,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后褂策,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體横腿,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年斤寂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了耿焊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遍搞,死狀恐怖罗侯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溪猿,我是刑警寧澤钩杰,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站诊县,受9級(jí)特大地震影響讲弄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜依痊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一避除、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦瓶摆、人聲如沸凉逛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鱼炒。三九已至,卻和暖如春蝌借,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背指蚁。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工菩佑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凝化。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓稍坯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親搓劫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瞧哟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、Java 簡介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚_t_閱讀 4,188評(píng)論 1 44
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)枪向,也就是一...
    悟名先生閱讀 4,149評(píng)論 0 13
  • 對(duì)于進(jìn)制勤揩,我們程序員都不陌生。我們常用的進(jìn)制有2進(jìn)制秘蛔、8進(jìn)制陨亡、10進(jìn)制、16進(jìn)制深员。它們之間的區(qū)別在于數(shù)運(yùn)算時(shí)進(jìn)位不...
    Kinsanity閱讀 2,382評(píng)論 0 2
  • 這是簡書的第一篇负蠕。 在這個(gè)互聯(lián)網(wǎng)加的時(shí)代,請(qǐng)?jiān)试S我突然想出的俗透了的文章名字倦畅。 我很喜歡碼字遮糖。我很喜歡唱歌。我很喜...
    紫嬛閱讀 271評(píng)論 0 0
  • 寫的第一篇作業(yè)叠赐,對(duì)于我這種完全沒懂過html的人來說簡直薪水 字體大欲账,下面注腳部分就不截了。 1燎悍,一開始css嵌套...
    汝可識(shí)得此陣容閱讀 334評(píng)論 0 0