时间:2021-05-20
1.原理
主要是调用了toHexString(将int类型转为16进制字符串)、parseInt(将字符串解析为int)这两个方法。
2.代码
public static void main(String[] args) { String hexString = colorToHexValue(Color.RED); System.out.println("16进制字符串:" + hexString); Color color = fromStrToARGB(hexString); System.out.println("16进制字符串转为颜色的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.效果
4.关键点
4.1 toHexString:没啥好说的,JDK提供的将整数转为16进制字符串。
4.2 number & 0xff : 确保int类型数据只有后8位是有效的,高24位都是无效的(都是0),int类型是32位,但是颜色值最大就是255,只需要8位就可以满足需求,因此就要确保传入的数据是合法的颜色值,而大于255的数据就要当作255处理,此时有两种办法,第一种就是本文这种处理方法,第二种就是加入判断,如果数据大于255,那么就等于255,如果小于则不处理。相比较而言,本文处理方法是代码最少的处理方法并且效率高。
4.3 &:按位“与”操作,如果二进制码同位都是1,那么结果就是1,否则就是0。
4.4 0xff: 0x代表它后面的是十六进制的数字;f就是15,转为2进制就是1111,2个f则是1111 1111(10进制的255),前面24位都是0,此时进行与操作,就确保了只有0——255范围内的int值是有效颜色值。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序开发--实现密码加密具体步骤:在utils中的util.js文件中增加函数实现字符串转换为16进制加密后的字符串:functionencodeUTF8
Javascript数值和和字符串进行转换时,可以对不同的进制进行操作。转换例子如下:复制代码代码如下:带进制的数值和字符串间进行转换//数字到串的转换:toS
微信小程序sha1实现密码加密实例详解在utils中的util.js文件中增加函数实现字符串转换为16进制加密后的字符串functionencodeUTF8(s
十六进制字符串与数值类型之间转换(C#编程指南)以下示例演示如何执行下列任务:获取字符串中每个字符的十六进制值。获取与十六进制字符串中的每个值对应的字符。将十六
java转换字符串编码格式(解码错误,重新解码)字符集概念:规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。我们