java整数颜色为颤动颜色

问题描述 投票:0回答:1

我正在将我的应用程序从Java重建为扑朔迷离。我正在使用Firebase将颜色存储为整数值。在Java中,我可以使用以下命令将rgb值转换为整数值:

colorInt = (255 << 24) | (color.red << 16) | (color.green << 8) | color.blue;

而且我可以使用以下内容将整数值转换为rgb:

int r = (colorInt >> 16) & 0xFF;
int g = (colorInt >> 8) & 0xFF;
int b = colorInt & 0xFF;

如何将Java整数颜色转换为颤动颜色并返回?

例如,以RGB 154、255、147为例

在扑朔迷离中,这将是4288348051

(255 << 24) | (154 << 16) | (255 << 8) | 147;
(4278190080) | (10092544) | (65280) | 147;

(4278190080) | (10092544) = 4288282624;
(4278190080) | (10092544) | (65280) = 4288347904;
(4278190080) | (10092544) | (65280) | 147 = 4288348051

在Java中为-6619245

(255 << 24) | (154 << 16) | (255 << 8) | 147;
(-16777216) | (10092544) | (65280) | 147;

(-16777216) | (10092544) = -6684672;
(-16777216) | (10092544) | (65280) = -6619392;
(-16777216) | (10092544) | (65280) | 147 = -6619245;
java flutter
1个回答
0
投票

也许用一位填充高位数字?

    int rgb = -6619245;
    final c = Color(rgb);
    print('${c.red} ${c.green} ${c.blue}');
    int fromColorRgb = c.value | 0xFFFFFFFF00000000;
    print('$rgb : $fromColorRgb');

结果:

I/flutter (10689): 154 255 147
I/flutter (10689): -6619245 : -6619245

假设您的Alpha通道始终为255

© www.soinside.com 2019 - 2024. All rights reserved.