真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中Color和16進(jìn)制字符串互相轉(zhuǎn)換的方法

1.原理

創(chuàng)新互聯(lián)公司:從2013年創(chuàng)立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為數(shù)千家公司企業(yè)提供了專業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)和網(wǎng)站推廣服務(wù), 定制網(wǎng)站建設(shè)由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

主要是調(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.效果

Java中Color和16進(jìn)制字符串互相轉(zhuǎn)換的方法

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值是有效顏色值。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。


網(wǎng)頁名稱:Java中Color和16進(jìn)制字符串互相轉(zhuǎn)換的方法
網(wǎng)站URL:http://weahome.cn/article/poooid.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部