我已经定义了一个颜色attr,将它设置为样式,我使用下面的代码来使用该值。只要颜色与#ffffffff不同,一切都正常工作(根据下面的代码表示,对于颜色变量获得正确值的样式中定义的任何颜色,但对于白色,颜色值为-1)。 似乎用我的代码颜色值必须小于#ffffffff,我不明白为什么。
这是attr的定义:
<attr name="viewLvActive" format="color"/>
这是自定义样式中的一行:
<item name="@attr/viewLvActive">#ffffffff</item>
这是代码,我用它从我的主题中获取此颜色值:
Resources.Theme theme = mCtx.getTheme();
TypedValue styleID = new TypedValue();
if (theme.resolveAttribute(R.attr.viewLvActive, styleID, true))
color=styleID.data;
else
color=-1;
最后,我可以使用#fffffffe的颜色,但我仍然想知道错误在哪里。
答案 0 :(得分:0)
color
变量的类型是什么?因为如果它是int
,那么-1 == #ffffffff
。如果您要查看以下内容:
if (color == -1) {
你会为#ffffffff获得true
。 int
为32位,ARGB颜色将填满所有颜色。你不能使用像-1(或任何其他值)这样的值来表示&#34;没有颜色&#34;。