在Android TextView

时间:2016-06-21 03:50:09

标签: android textview

我在Android上打造一种打字游戏。它有一个文本视图,其中包含用户必须键入的句子。每次用户输入的当前单词都会加下划线,一旦用户完成单词,该单词将根据输入的时间改变颜色(例如&gt; 5秒=红色,<5秒为绿色)。

我的问题是如何在文本视图中加下划线并更改单词的颜色,这样当我为新单词加下划线时,它还会保留以前单词的颜色?

目前我每次移动到下一个单词时都会做这样的事情

String texts = myTextView.getText().toString();
// put the next word to be underlined between <u> </u> tags
myTextView.setText(Html.fromHtml(texts));

正如你所看到的,它会强调下一个单词,但前面单词的所有颜色都会丢失,但我想保留它们。

感谢您的帮助!

编辑:我的文字已修复,用户必须输入他们看到的字词。例如,我有一个句子&#34; Sample Sentence Hello&#34;。我想&#34; Sample&#34;首先强调,然后&#34;句子&#34;下划线,&#34;样本&#34;改变了红色或绿色,然后&#34;你好&#34;带下划线和&#34;样本&#34;和&#34;句子&#34;每个都改为红色或绿色,具体取决于用户输入每个单词所花费的时间。

2 个答案:

答案 0 :(得分:0)

您可以以编程方式将其设置为TextView

喜欢if else条件。

if(time > 5){    
   String texts = myTextView.getText().toString();
   myTextView.setText(texts);
   myTextView.setPaintFlags(textview.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
   mTextView.settextColor(Color.parsecolor("#FF0000"));

}else {
   String texts = myTextView.getText().toString();
   myTextView.setText(texts);
   myTextView.setPaintFlags(textview.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
   mTextView.settextColor(Color.parsecolor("#0000FF"));
}

答案 1 :(得分:0)

尝试这种方式来创建下划线

<resources>
    <string name="your_string">
        This is an <u>underline</u>.
    </string>
</resources>

爪哇

TextView tv = (TextView) view.findViewById(R.id.tv);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tv.setText(content);

或使用油漆

txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);