Java中Color和16进制字符串互相转换的方法

2025-05-29 0 53

1.原理

主要是调用了tohexstring(将int类型转为16进制字符串)、parseint(将字符串解析为int)这两个方法。

2.代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
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.效果

Java中Color和16进制字符串互相转换的方法

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对快网idc的支持。

原文链接:https://www.jianshu.com/p/c0b8068dd626

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java中Color和16进制字符串互相转换的方法 https://www.kuaiidc.com/111522.html

相关文章

发表评论
暂无评论