将安卓颜色转换为十六进制或RGB

我有一组像,,我想在网页中用作RGB或十六进制颜色的数字。429493309942837446144293898800

我以前从未见过这种类型的颜色格式,但是谷歌搜索将我带到这个页面,该页面将这些数字标识为Android,我想要的是拥有自己的JavaScript函数,可以将这些驼峰转换为安全的十六进制或RGB颜色以在网页中使用。android.graphics.Color

http://img4.mukewang.com/62fdf9380001a06313751273.jpg

收到一只叮咚
浏览 428回答 2
2回答

繁花如伊

android.graphics.Colors 采用十六进制(Alpha-Red-Green-Blue)格式,转换为小数。AARRGGBB例如,是十六进制的,因此它变为 或 。4294933099FFFF7A6Brgba(255, 122, 107, 1)#FF7A6BFF如果要使用语法,则可以使用以下除法方法,以避免将数字转换为十六进制:rgba()function androidToRgba(color){&nbsp; const colorArray = []&nbsp; for(let i=0; i<4; i++){&nbsp; &nbsp; colorArray.push(color % 256)&nbsp; &nbsp; color>>>=8&nbsp; }&nbsp; const alpha = colorArray.pop() / 255&nbsp; return `rgba(${colorArray.reverse()},${alpha})`}console.log(androidToRgba(4294933099))console.log(androidToRgba(4283744614))console.log(androidToRgba(4293898800))或者,如果要使用新的颜色语法,或者忽略 alpha 并使用标准十六进制 (),则可以改用以下内容:#RRGGBBAA#RRGGBBfunction androidToHex(color){&nbsp; const [, alpha, ...colorArray] = ('00000000' + color.toString(16)).slice(-8).match(/([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i)&nbsp; return `#${colorArray.join('')}${alpha}`}console.log(androidToHex(4294933099))console.log(androidToHex(4283744614))console.log(androidToHex(4293898800))尽管上述两种解决方案都有效,但我强烈建议使用前者,因为语法比 更好的支持,并且第一个函数的速度也快了大约9倍。rgba()#RRGGBBAA

慕婉清6462132

实际上,android颜色只是十进制数,因此,如果您将它们转换为十六进制字符串,则可以达到十六进制颜色,但作为ARGB。hexARGBColor&nbsp;=&nbsp;color.toString(16);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript