android - android 中 0xff -colors 有什么用?

标签 android colors

有时在 android 项目中有像 '0xff4ca665' 这样的颜色格式。

使用它们的目的是什么?

最佳答案

一些来自 24 位颜色的程序员有更多的经验。有时它在 Android 中很重要,alpha 不会在 renderscript 中的一些更直接的操作中被掩盖。当你想要 '0xff4ca665' 告诉系统你想要 '0x4ca665' 并希望以后有其他东西正确地掩盖它时,这似乎是对实际上什至不能浪费时钟周期的东西的粗略赌注。

有些东西不会将 resID 链接到颜色,也不会为您提供类似 View.setBackgroundColor(int) 的选项,其中颜色的 int 编码为 32 位整数。

具体来说,这就是 24 位颜色的 alpha 掩码的工作原理。它们被格式化为 32 位整数,如 0bAAAAAAAARRRRRRRRRGGGGGGGGBBBBBBBBB 所以 RGB 的每种颜色都有 8 位,并且 alpha 有 8 位掩码,无论稍后使用 PorterDuff 混合来渲染结果。 Android 将颜色纯粹存储为整数,因此使用这些是个好主意,如果最终结果是这样的话。

当你用十六进制这样做时,你会得到每个东西的两位数 0xAARRGGBB 并且 AA 设置为 ff,表示 255 或完全不透明。无需相信颜色不会完全不透明。很多时候,如果您将它们保留为 00,您最终会得到一张空白图像,或者完全透明的图像。如果我们只是公开地包含 alpha,那么知道哪些时间很重要是不值得的。

Android 还有一些其他方案,这些方案在 shorts 中存储颜色很重要。即 4444 以 4 位存储 alpha 和每种颜色。 565 以 5 位存储红色,以 6 位存储绿色,以 5 位存储蓝色。两者最终总共使用 16 位而不是 32 位。但是,很多编码方案都使用 8888,这是非常标准的,所以经常看到人们这样引用颜色,尤其是十六进制。

关于android - android 中 0xff -colors 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38839175/

相关文章:

android - Android 和 Vuforia 的相机方向错误

Android GCM 实现

php - 如何将颜色从 bash 脚本传播到 CI(GitHub Actions、Travis、Gitlab...)?

image - 实时替换图像上的颜色

C# DateTime 到字符串问题

java - Android应用在启动时崩溃

java - Android Multidex 运行时异常

java - 如何更改 JUNG 中特定顶点的颜色

button - Kivy 中的更改颜色按钮

c# - 如何读取 XNA 中特定像素的颜色?