如何将Android颜色类整数类型对象转换为人类可理解的字符串



我想从 rgb(r,g,b) 创建一个随机颜色,并希望在TextView中显示它的名称。

我的这段代码不起作用:

t.setText("the color is  "+Integer.toHexString(c.rgb(r, g, b)));

http://www.iam.uni-bonn.de/~alt/latex/rgb.txt 是一个颜色名称列表(它是 MIT 许可的 X11R6 的一部分,因此您可以将其包含在您自己的代码中,而不会有太大问题的法律限制)。 您可以将其中的项目加载到 ArrayList 中,然后扫描查找颜色与列表中的每个项目之间的距离,并使用最接近的项目的名称。

如果你想

打印the color is GREEN,那么我认为你必须编写自己的算法并设置一些阈值来定义你认为颜色何时从一个名称变成另一个名称(例如,从绿色到蓝色)。然后,您将颜色代码传递给该算法并获取该颜色的名称。

编写这样的算法甚至不必那么复杂。您可以比较自定义颜色的基色分量并找到主要分量。根据它占主导地位的程度,您可以找到阈值,从而找到颜色名称。

最新更新