gpt4 book ai didi

android - 以编程方式从 R.color 检索颜色返回错误的颜色

转载 作者:行者123 更新时间:2023-11-29 15:12:14 25 4
gpt4 key购买 nike

我正在尝试获取用户 xml 文件中列出的颜色名称并返回十六进制颜色。我正在使用基于帖子 Retrieve color programmatically from R.color 的代码.我知道我很接近,因为当我在 HashMap 中有一小部分颜色并将名称作为键时它正在工作,但文件中有超过 300 种颜色并寻找 5 或 6 种似乎浪费了处理时间。下面的代码是正在使用的代码,但如果需要,我可以包含更多代码。

用户的 xml 文件示例。

<Item>
<Item_Name>Daily</Item_Name>
<Price>400</Price>
<Type>Entry</Type>
<Color>Green</Color>
</Item>

颜色.xml

 <color name="green">#008000</color>

Java:

 0   **pass in name from method call**
1 Class res = R.color.class;
2 Field field = res.getField( name );
3 color = field.getInt(null);

当我将其作为调试运行时,给出的结果如下:

0: name = "green"
1: res = tech.travis.poolpos.R$color
2: field = public static final int tech.travis.poolpos.R$color.green
3: color = 2131099743 (integer). This translates to #&5f00067f,
which is about a navy blue with an opacity of about 37%.

应该为绿色返回的整数应该是 -16744448,而不是 2131099743。

如果可能的话,我如何将名称作为字符串并匹配它并返回 colors.xml 中列出的颜色?

最佳答案

那是颜色的 id,而不是颜色本身。要获得颜色,您需要 getResources().getColor(field.getInt(null)); 代替。

R 上的所有内容都是一个 ID。这就是为什么我们有像 getColorgetDrawable 这样的方法,它们将 R.color.my_colorR.drawable.my_drawable< 作为参数.

关于android - 以编程方式从 R.color 检索颜色返回错误的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com