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

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

將安卓顏色轉換為十六進制或RGB

將安卓顏色轉換為十六進制或RGB

收到一只叮咚 2022-08-18 16:31:46
我有一組像,,我想在網頁中用作RGB或十六進制顏色的數字。429493309942837446144293898800我以前從未見過這種類型的顏色格式,但是谷歌搜索將我帶到這個頁面,該頁面將這些數字標識為Android,我想要的是擁有自己的JavaScript函數,可以將這些駝峰轉換為安全的十六進制或RGB顏色以在網頁中使用。android.graphics.Color
查看完整描述

2 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

android.graphics.Colors 采用十六進制(Alpha-Red-Green-Blue)格式,轉換為小數。AARRGGBB


例如,是十六進制的,因此它變為 或 。4294933099FFFF7A6Brgba(255, 122, 107, 1)#FF7A6BFF


如果要使用語法,則可以使用以下除法方法,以避免將數字轉換為十六進制:rgba()


function androidToRgba(color){

  const colorArray = []

  for(let i=0; i<4; i++){

    colorArray.push(color % 256)

    color>>>=8

  }

  const alpha = colorArray.pop() / 255

  return `rgba(${colorArray.reverse()},${alpha})`

}


console.log(androidToRgba(4294933099))

console.log(androidToRgba(4283744614))

console.log(androidToRgba(4293898800))


或者,如果要使用新的顏色語法,或者忽略 alpha 并使用標準十六進制 (),則可以改用以下內容:#RRGGBBAA#RRGGBB


function androidToHex(color){

  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)

  return `#${colorArray.join('')}${alpha}`

}


console.log(androidToHex(4294933099))

console.log(androidToHex(4283744614))

console.log(androidToHex(4293898800))


盡管上述兩種解決方案都有效,但我強烈建議使用前者,因為語法比 更好的支持,并且第一個函數的速度也快了大約9倍。rgba()#RRGGBBAA


查看完整回答
反對 回復 2022-08-18
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

實際上,android顏色只是十進制數,因此,如果您將它們轉換為十六進制字符串,則可以達到十六進制顏色,但作為ARGB。

hexARGBColor = color.toString(16);


查看完整回答
反對 回復 2022-08-18
  • 2 回答
  • 0 關注
  • 522 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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