如何在Android中使用drawable设置android:textColor?

14
我知道如何在XML中将可绘制对象作为文本颜色设置,但我不知道如何在Java中实现。
在XML中,类似以下的代码:
```xml android:textColor="@drawable/my_drawable" ```
android:textColor="@drawable/selected_color"

在Java中?
5个回答

16

假设您所说的"drawable"是指像这样具有颜色项的选择器:

res/color/your_colors.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#ffffffff"/>
    <item android:color="#ff1c5fab"/>
</selector>
你可以使用以下代码:mText.setTextColor(getResources().getColorStateList(R.color.your_colors));

5

color/selector_colors.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/white" android:state_checked="true" />
    <item android:color="@color/white" android:state_pressed="true" />
    <item android:color="@color/white" android:state_activated="true" />

    <item android:color="@color/black" />

</selector>

您需要将其实现到TextView中,如下所示:
textview.setTextColor(context.getResources().getColorStateList(R.color.selector_colors));

2
假设您所说的“drawable”是指带有颜色项的选择器,则应参考此问题
您将无法在图像可绘制对象或包含图像可绘制对象的选择器中使用textcolor。

1
你看到了this, this 或者 this 吗?
最后一个链接说要使用:
tvImagesTitle.setTextColor( getResources().getColor(R.color.blue) ); 

0

一种简单的方法是使用HTML:

StringBuilder text = new StringBuilder();
text.append("<font color='").append(selectedColor).append("'>")                     .append("your text here").append("</font>");

textView.setText(Html.fromHtml(text.toString()), BufferType.SPANNABLE);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接