当前位置: 首页 > 知识库问答 >
问题:

Java Android Studio颜色Int到字节

顾俊哲
2023-03-14

我想将int颜色转换为rgb字节数组。我正在使用ColorPickerDialog(ColorPickerDialog)。

如果我选择一种颜色(比方说蓝色),我会得到整数值:-16775425。

这符合十六进制中的0xFF 00 06 FF。

据我所知,红色: 0x0,绿色: 0x06,蓝色: 0xFF。如果我在微软油漆(0006FF)中测试它,我会得到蓝色。

如果我尝试使用以下代码将整数值转换为字节数组:

public byte [] getColorByte(int color1){
    byte[] color = new byte[3];
    color[2] = (byte) (color1 & 0xFF);
    color[1] = (byte) ((color1 >> 8) & 0xFF);
    color[0] = (byte) ((color1 >> 16) & 0xFF);
    return color;

我将得到一个带有[0,6,-1]的字节数组。

但是如果我想用颜色设置按钮的背景色。rgb功能:

btn.setBackgroundColor(Color.rgb(getColorByte(color1)[0],getColorByte(int color1)[1],getColorByte(int color1)[2]));

我只有一个白色的按钮。

在我看来,问题是255=FF!=-1.对吗?如何将整数拆分为RGB值?(3字节数组)。

谢谢

仅供参考:我知道我可以用整数改变背景色,但我想得到RGB数组:-)

共有1个答案

孟璞
2023-03-14

要回答第二个问题(关于将数组转换回整数的问题),请使用以下代码:

int answer = color[2];
answer += color[1] << 8;
answer += color[0] << 16;

这基本上与你的操作相反。

 类似资料:
  • 我正在尝试使用Javascript中数据库中的一些JavaColor int值。使用Javascript将Java颜色int(如-2147473665)转换为RGB字符串(如“#ffff00”)的正确方法是什么?将它们直接转换为十六进制会使它们全部深蓝色或黑色... (编辑)第一个答案有所帮助,我现在得到了黑色以外的颜色,但它们仍然不是正确的色调。(我知道谷歌地图API采用RGB,而不是HSV,所

  • 颜色 主导颜色 灰阶 字体 字体字号 图标 气泡菜单 组件内容 基础形态 容器 操作选项 选择浮层 顶部浮层 底部浮层 侧边浮层 示例 布局 标签选项 <!-- # 顶部导航栏 原生顶部导航栏 示例 个性定制 示例 --> Toast 单行展示 双行展示 状态提示 Dialog 弹窗属性 页面示例 Snackbar <!-- # 结果页面 布局 页面示例 组成结构 --> 布局 页面示例 类型 页

  • 原文:Specifying Colors 在 matplotlib 的几乎所有地方,用户都可以指定颜色,它可以以如下形式提供: RGB 或者 RGBA 浮点值元组,[0, 1]之间,例如(0.1, 0.2, 0.5)或者(0.1, 0.2, 0.5, 0.3)。 RGB 或者 RGBA 十六进制字符串,例如#0F0F0F或者#0F0F0F0F。 [0, 1]之间的浮点值的字符串表示,用于表示灰度,

  • 问题内容: 是否有生成器,或生成这种文本的简便方法,而无需定义 每个 字母 所以像这样: 但是不是用 彩虹 色而是用其他颜色(例如,白色到灰色/浅蓝色渐变等)生成的,我为此找不到简单的解决方案。有什么办法吗? 问题答案: 我不完全了解 Stop的 工作原理。但是我有一个 渐变文本 示例。也许这会帮到您! _您也可以根据需要为渐变添加更多颜色,或者从颜色生成器中选择其他颜色

  • 问题内容: 是否有CSS属性可根据以下图片反转相关内容? 问题答案: 有一个CSS属性叫做mix-blend-mode,但是IE不支持。我建议使用伪元素。如果您想支持IE6和IE7,则还可以使用两个DIV代替伪元素。

  • 是否有CSS属性来根据来反转,就像这张图片一样?