我的Android进阶之旅------>Android颜色值(#AARRGGBB)透明度百分比和十六进制对应关系以及计算方法

本文探讨了Android中颜色值的透明度百分比与十六进制的对应关系,提供了对应的表格和计算方法,是作者欧阳鹏的Android进阶学习心得。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### JavaScript 中为十六进制颜色值添加透明度并转换为带透明度十六进制格式 在 JavaScript 中,可以将普通的十六进制颜色值(如 `#RRGGBB`)扩展为带透明度十六进制颜色值(如 `#AARRGGBB`),其中 AA 表示透明度。以下是具体方法: #### 添加透明度十六进制颜色 为了实现这一目标,需要先解析原始的十六进制颜色值,并将其分解为 R、G、B 三部分。接着根据给定的透明度值(通常是一个介于 0 到 1 的浮点数),计算对应的 Alpha 值(AA 部分)。最后按照指定顺序拼接各部分得到新的颜色值。 ```javascript function addAlphaToHex(hex, alpha = 1) { // 移除可能存在的 '#' 符号 let hexValue = hex.replace(/^#/, ''); // 确保输入是有效的三位或六位十六进制颜色码 if (![3, 6].includes(hexValue.length)) { throw new Error('Invalid hexadecimal color provided.'); } // 如果是缩写形式(如 #ABC),展开为完整形式(如 #AABBCC) if (hexValue.length === 3) { hexValue = hexValue.split('').map(char => char + char).join(''); } // 将透明度从 [0, 1] 映射到 [00, FF] const alphaPart = Math.round(alpha * 255).toString(16).padStart(2, '0'); // 组合 Alpha RGB 部分 return `#${alphaPart}${hexValue}`; } ``` 在此函数中,首先移除了前导的 `#` 号以便后续处理[^1]。随后检查了所提供的十六进制字符串长度是否有效;如果不是预期的形式,则抛出异常提示用户修正输入。对于那些采用简化记法(例如 `#ABC`)的情况进行了扩展使其成为完整的六个字符版本(比如变为 `#AABBCC`)。之后依据所设定的透明程度调整相应的 Alpha 数字表达,并且利用 padStart 方法保证即使当结果小于两位时也能正确填充零以维持固定宽度[^2]。 --- #### 使用实例 这里有一些具体的调用样例来演示这个过程的实际运作情况: ```javascript // 示例一:全透明黑色 (#000000) let transparentBlack = addAlphaToHex('#000', 0); console.log(transparentBlack); // 输出: "#00000000" // 示例二:半透明白色 (#FFFFFF) let semiTransparentWhite = addAlphaToHex('#ffffff', 0.5); console.log(semiTransparentWhite); // 输出: "#80ffffff" ``` 以上代码片段展示了如何创建完全不可见的纯黑以及一半可见性的亮白两种情形下的 AARRGGBB 类型的颜色表示[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字节卷动

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值