亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java整數顏色到顫動顏色并返回

java整數顏色到顫動顏色并返回

德瑪西亞99 2023-12-13 16:54:56
我正在將我的應用程序從 java 重建為 flutter。我使用 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;
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

Java 使用有符號的 32 位整數。擴展他們發布的代碼塊,我們可以創建一個完整的示例,它可以滿足我們的需要:


import 'dart:math';


int chopToJavaInt (int result) {

? while (result > pow(2, 31)) {

? ? result = result - pow(2, 32);

? }

? return result;

}


int javaIntColor(int r, int g, int b) {

? var x = (g << 24) | (r << 16) | (g << 8) | b;

? return chopToJavaInt(x);

}


void main () {

? print(javaIntColor(154, 255, 147)); //-6619245

}

該解決方案是模塊化的,保留了 Java 代碼的原始風格,并將返回正確的值。


查看完整回答
反對 回復 2023-12-13
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

Java 使用有符號 32 位 int,因此值介于 -2^31 和 2^31 之間。一旦達到 2^31,它們就會從 -1 繼續到 -2^31。

嘗試將此應用于您在 Flutter 中獲得的結果:

if (result > pow(2, 31)) {
  result = result - pow(2, 32);
}


查看完整回答
反對 回復 2023-12-13
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

也許用 1 填充高位數字?


    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


查看完整回答
反對 回復 2023-12-13
  • 3 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號