- /**
- * rgb转换成16进制
- * @param r
- * @param g
- * @param b
- * @return
- */
- public String rgb2Hex(int r,int g,int b){
- return String.format("#%02X%02X%02X", r,g,b);
- }
-
备注:解释%02X:
X:代表以16进制形式输出;
02:表示不足两位,前面补0输出;如果超过两位,则实际输出;
如果直接写为%2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。
- /**
- * 16进制颜色字符串转换成rgb
- * @param hexStr
- * @return rgb
- */
- public int[] hex2RGB(String hexStr){
- if(hexStr != null && !"".equals(hexStr) && hexStr.length() == 7){
- int[] rgb = new int[3];
- rgb[0] = Integer.valueOf(hexStr.substring( 1, 3 ), 16);
- rgb[1] = Integer.valueOf(hexStr.substring( 3, 5 ), 16);
- rgb[2] = Integer.valueOf(hexStr.substring( 5, 7 ), 16);
- return rgb;
- }
- return null;
- }
-
- /**
- * 16进制转10进制
- * @param hexStr
- * @return
- */
- public long hex2Integer(String hex_num){
- return Long.parseLong(hex_num, 16);
- }
-
- /** 10进制转16进制 */
- public long integer2hex(String num){
- return Integer.parseInt(num,16);
- }
-
- //int -> string
- String hexString = Integer.toHexString(colorInt);
-
- //string -> int
- int colorInt = Color.parseColor(hexString);
-
- //int -> string
- public static String toHexEncoding(int color) {
- String A, R, G, B;
- StringBuilder sb = new StringBuilder();
- A = Integer.toHexString(Color.alpha(color));
- R = Integer.toHexString(Color.red(color));
- G = Integer.toHexString(Color.green(color));
- B = Integer.toHexString(Color.blue(color));
- //判断获取到的A,R,G,B值的长度 如果长度等于1 给A,R,G,B值的前边添0
- A = A.length() == 1 ? "0" + A : A;
- R = R.length() == 1 ? "0" + R : R;
- G = G.length() == 1 ? "0" + G : G;
- B = B.length() == 1 ? "0" + B : B;
- sb.append("0x");
- sb.append(A);
- sb.append(R);
- sb.append(G);
- sb.append(B);
- return sb.toString();
- }
-