ColorDrawable不会接受我的整数资源

时间:2014-11-18 21:59:13

标签: android eclipse

我找到了一个漂亮的淡蓝色,带有很酷的十六进制值:#abcdef 我正在使用以下方式更改操作栏颜色:

getActionBar().setBackgroundDrawable(new ColorDrawable(0xffabcdef));

但是当我尝试将该值放入整数资源时:

  <integer name="_light_blue">0xffabcdef</integer>

颜色变灰。原因是:

    int i1 = 0xffabcdef;
    int i2 = R.integer._light_blue;

值i1 = -5517841,值i2 = 2131099651。

任何修复?

1 个答案:

答案 0 :(得分:2)

您将i2设置为该整数的资源ID。而是获取实际值:

int i =  0xffabcdef;
int i2 = getResources().getInteger(R.integer._light_blue);
Log.e("", i + " " + i2);

但是在这里,使用颜色资源(res/values/colors.xml)会更精确:

<resources>
    <color name="_light_blue">#ffabcdef</color>
</resources>

然后使用颜色:

int myBlue = getResources().getColor(R.color._light_blue);
getActionBar().setBackgroundDrawable(new ColorDrawable(myBlue));