【问题标题】:Android: set color programatically from XML color constantsAndroid:从 XML 颜色常量以编程方式设置颜色
【发布时间】:2015-07-01 04:07:32
【问题描述】:

尝试将 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(????);

【问题讨论】:

  • 你想给TextView的Text或者textview的背景设置颜色吗?

标签: java android colors


【解决方案1】:

颜色条目应该是这样的

&lt;color name="tableHead"&gt;#FF444444&lt;/color&gt;

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

【讨论】:

  • 我不知道为什么,但我将我的“颜色”定义为“可绘制”:-/你是对的,但我必须像这样设置颜色 >> getResources().getColor (R.color.tableHead)
【解决方案2】:

使用,..

Color.parseColor("#bdbdbd");

喜欢,

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

或者…………

获取使用的根布局的句柄,然后为其设置背景颜色。根布局就是你调用 setContentView 的任何东西。

// 现在获取包含的任何视图的句柄 // 在你使用的主布局中

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

// 找到根视图

 View root = someView.getRootView()

//设置颜色

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

【讨论】:

    【解决方案3】:
    tv.setTextColor(getResources().getColor(R.color.tableHead));
    

    猜猜你的colors.xml应该是这样的

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

    【讨论】:

      【解决方案4】:

      您的 color.xml 应该如下所示:

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

      你将如何在 textview 中使用这种颜色来设置:像这样

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

      【讨论】:

        【解决方案5】:

        试试这样的:

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

        【讨论】:

          【解决方案6】:

          首先修改你的 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)
          

          【讨论】:

            【解决方案7】:

            如果颜色常量中有颜色

            <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));
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-07-23
              • 2015-09-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-10-27
              • 2021-10-18
              相关资源
              最近更新 更多