android - 我可以为附加到 TextView 的每个文本行选择一种颜色吗?

标签 android colors textview

我有一个 TextView 用作蓝牙连接控制台。当我发送命令时,我希望它以一种颜色(例如青色)书写,而收到的答案以不同的颜色(例如红色)书写。

是否可以这样做,如果可以,怎么做?

我读到过使用 HTML 可能是可行的,但我不太确定这是最好的方法,甚至不确定如何去做。

最佳答案

这里有一个基于 C0deAttack 答案的小辅助函数,可以简化事情

public static void appendColoredText(TextView tv, String text, int color) {
    int start = tv.getText().length();
    tv.append(text);
    int end = tv.getText().length();

    Spannable spannableText = (Spannable) tv.getText();
    spannableText.setSpan(new ForegroundColorSpan(color), start, end, 0);
}

只需替换所有调用

textView.append("Text")

appendColoredText(textView, "Text", Color.RED);

关于android - 我可以为附加到 TextView 的每个文本行选择一种颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105545/

相关文章:

c# - 我是否需要取消订阅 Click 事件以防止内存泄漏?

android - 如何在 android 上使用高速公路库在 websocket 中添加 header ?

android - 如何以编程方式为 textview 设置字体?

android - 错误膨胀类 <unknown>

android - View.findViewById() 返回 null

android - 在 Android `SmsMessage` 中嵌入隐藏文本

java - 动态创建具有不同亮度的颜色

ios - 如何防止单元格在另一个单元格中镜像按钮按下操作?

html - 如何改变<hr/>元素的颜色?

android - 多个spannable设置时如何获取文本宽度