如何将HEX的颜色值转换为smali颜色(和背面)?例如:#ff212121
(十六进制) - >-0xdededf
(小数)。 #df3192b8
- >-0x20ce6d48
等如何将HEX颜色转换为smali颜色(Java)?
回答
没有必要转换任何东西。如果您的十六进制代码是#df3192b8
,那么您可以使用0xdf3192b8
。
smali中的32位整数常量可用-2^31
和2^32-1
(而不是2^31-1
)之间的值指定。基本上,它是可能的有符号和无符号32位值的组合。
当然,由于java只有有符号整数,因此当您指定一个范围为2^31
-2^32 - 1
的值时,虚拟机会将其解释为负数,这是baksmali在拆卸时使用的默认表示形式一类。这就是为什么你在反汇编中看到像-0x20ce6d48
而不是0xdf3192b8
这样的值。但是这两个值都会生成相同的字节码/指定相同的颜色。
为了“转回”,如果该值为正数,则不需要做任何事情。如果该值为负值,只需将0x100000000
添加到该值。例如-0x20ce6d48 + 0x100000000 = 0xdf3192b8
,所以值-0x20ce6d48
对应于#df3192b8
的十六进制颜色代码。
- 在新的十六进制数的前面做的所有数字的十六进制减法的颜色从“F”
- 前追加-0x。
不需要将十六进制颜色代码转换为其有符号表示形式。查看我的答案了解更多详情。 – JesusFreke
另外,你描述的是补码,但有符号整数使用二进制补码表示,所以你的转换是关闭的。 – JesusFreke
- 1. ASCII颜色为HEX颜色
- 2. Android - 将ARGB颜色转换为HEX
- 3. 将HTML HEX颜色或RGB元组转换为X11颜色
- 4. 如何将RGB颜色或Hex转换为HSB?
- 5. 如何将颜色字符串转换为颜色对象?
- 6. 将uint转换为颜色
- 7. 将颜色转换为ConsoleColor?
- 8. Android的HEX颜色
- 9. 如何将颜色值转换为RGB
- 10. 如何将RGB转换为HTML颜色?
- 11. 将CMYK PDF转换为专色(颜色)
- 12. 将HEX转换为最接近的X11颜色编号
- 13. 将颜色RGB转换为HEX(int结果)
- 14. 颜色转换
- 15. 颜色转换
- 16. 转换颜色
- 17. java中的颜色转换
- 18. 如何十六进制颜色转换为RGB颜色(24位)
- 19. 将文本颜色转换为bg上的颜色
- 20. 将12位颜色值转换为8位颜色值C++
- 21. 将Tif索引的8位颜色转换为32位颜色
- 22. 将十六进制颜色代码转换为颜色名称
- 23. ClosedXml中的“无法将主题颜色转换为颜色”
- 24. 将RGB颜色转换为C中最接近的ACI颜色#
- 25. 将RGBA颜色转换为HTML颜色代码
- 26. 将十六进制颜色字符串转换为RGB颜色
- 27. 直接将CMYK颜色转换为HSV颜色
- 28. 在GWT中,如何使用.getBackgroundColor()将颜色从rgba转换为Hex?
- 29. 转换16bit颜色为32bit
- 30. Make imagettftext recognice HEX颜色
http://touchwizreborn.blogspot.com/2016/02/how-to-convert-hex-color-code-to-smali.html – assylias
这比我想象的要容易。奇怪的是,我在Google中搜索时未找到此链接。谢谢! –
该链接不正确。最终你会得到一个与原始颜色相同的颜色。 – JesusFreke