dragan2011
@dragan2011
Интернет-маркетолог любящий покодить ;)

Как конвертировать с HEX или RGB в Android color?

Как сделать функцию JavaScript, которая преобразует цвета Hex или rgba в Android color. На просторах интернета нашел только как сделать наоборот с Android color в rgba и Hex.
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))


Спасибо за любую помощь.
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
RAX7
@RAX7
function rgbaToAndroid1(rgba) {
  const c = new Uint8Array([
    rgba[2],
    rgba[1],
    rgba[0],
    Math.round(rgba[3] * 255)
  ]);
  return new Uint32Array(c.buffer)[0];
}

// либо
function rgbaToAndroid2(rgba) {
  let color = 0;
  for (let i = 0; i < 3; i++) {
    color += rgba[i] * 2 ** ((2 - i) * 8);
  }

  color += Math.round(rgba[3] * 255) * 2 ** (3 * 8);
  return color;
}

console.log(rgbaToAndroid1([255, 122, 107, 1]));
console.log(rgbaToAndroid2([255, 122, 107, 1]));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы