我在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;每个都改为红色或绿色,具体取决于用户输入每个单词所花费的时间。
答案 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);