Android:从XML颜色常量以编程方式设置颜色

时间:2015-04-23 06:37:59

标签: java android colors

尝试将res / values / colors.xml中定义的颜色设置为对象

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <drawable name="listViewSelected">@android:color/holo_blue_light</drawable>
  <drawable name="listViewPressed">@android:color/holo_green_light</drawable>
  <drawable name="pagerTabStrip">#2B3333</drawable>
  <!--<drawable name="pagerTabStrip">#353F3E</drawable>-->
  <drawable name="tableHead">#FF444444</drawable>

</resources>

我无法弄清楚它为什么不起作用, 我尝试了很多方法(getResources(), Color.parseColor(), ...)

如何设置颜色“tableHead”,例如到TextView?

tv.setBackgroundColor(????);

7 个答案:

答案 0 :(得分:15)

颜色条目应该是这样的

<color name="tableHead">#FF444444</color>

并使用tv.setBackgroundResource(R.color.tableHead);

答案 1 :(得分:5)

使用,..

Color.parseColor("#bdbdbd");

mTextView.setTextColor(Color.parseColor("#bdbdbd"));

OR ......................

获取所使用的根布局的句柄,然后在其上设置背景颜色。根布局是你用set。的调用setContentView。

//现在获取包含任何View的句柄   //在您正在使用的主要布局中

 View someView = findViewById(R.id.randomViewInMainLayout);

//查找根视图

 View root = someView.getRootView()

//设置颜色

  root.setBackgroundColor(getResources().getColor(android.R.color.red));

答案 2 :(得分:2)

您的color.xml应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="tableHead">#FF444444</color>
</resources>

如何使用此颜色在textview中设置:像这样

tv.setBackgroundColor(getResources().getColor(R.color.tableHead));

答案 3 :(得分:2)

tv.setTextColor(getResources().getColor(R.color.tableHead));

猜猜你的colors.xml应该是什么样的

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="tableHead">#FF444444</color>
</resources>

答案 4 :(得分:1)

尝试这样的事情:

tv.setBackgroundResource(Color.parseColor("#ffffff"));

答案 5 :(得分:1)

首先修改color.xml,如下所示

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <color name="listViewSelected">@android:color/holo_blue_light</drawable>
  <color name="listViewPressed">@android:color/holo_green_light</drawable>
  <color name="pagerTabStrip">#2B3333</drawable>
  <!--<color name="pagerTabStrip">#353F3E</drawable>-->
  <color name="tableHead">#FF444444</drawable>

</resources>

要设置textview背景颜色,您可以这样做

tv.setBackgroundColor(R.color.tableHead);

另外,为了设置textview textcolor,你可以这样做

tv_empty.setTextColor(R.color.tableHead)

答案 6 :(得分:0)

如果颜色常量中存在某种颜色,例如

<color name="error_red_color">#f00</color>

然后可以将其设置如下-

tv.setTextColor(ContextCompat.getColor(context, R.color.error_red_color))

tv.setTextColor(getResources().getColor(R.color.error_red_color, null))

其他方法是-

tv.setTextColor(Color.RED);

tv.setTextColor(Color.parseColor("#FFFFFF"));

tv.setTextColor(Color.rgb(100,100,100));