在java中更改多个textView的颜色

时间:2015-08-08 10:17:53

标签: java android xml

我想以编程方式一次更改许多100的颜色。理想情况下,我不想单独引用每个textView,而是想改变colors.xml中的颜色(每个textView都有这种颜色)。 以下是一些有助于说明的代码:

textView

有一种简单的方法可以做到这一点,还是我必须引用每个luminance = (0.2126f * RGBRed) + (0.7152f * RGBGreen) + (0.0722f * RGBBlue); if(luminance >= 160) { //change color of multiple textViews to black } else { //change color of multiple textViews to white }

2 个答案:

答案 0 :(得分:1)

您可以使用styles

如果您在布局中引用这样的样式:

<TextView
style="@style/MyTextViewStyle"
android:text="@string/hello" />

并使用以下内容在styles.xml文件夹中添加res/values/

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyTextViewStyle" parent="@android:style/TextAppearance.Medium">
        <item name="android:textColor">#0000FF</item>
    </style>
</resources>

您只需要在一个地方更新颜色:styles.xml文件。

编辑 - 啊,你的意思是在运行时更改它。然后,我建议您查看this answer

答案 1 :(得分:-1)

我建议您使用SpannableString

您可以为文本视图的每个部分设置自定义颜色 这是一个例子:

  

TextView myTV = (TextView)findViewById(R.id.textView1); String textString = "this is a test text for you"; Spannable spanText = Spannable.Factory.getInstance().newSpannable(textString); spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 4, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); myTV.setText(spanText);