Android TextView中的下划线和更改文本颜色[重复]
Posted
技术标签:
【中文标题】Android TextView中的下划线和更改文本颜色[重复]【英文标题】:Underline and change text color in Android TextView [duplicate] 【发布时间】:2016-10-22 11:01:57 【问题描述】:我正在开发一种 android 上的打字游戏。它有一个文本视图,其中包含用户必须输入的句子。每次用户必须输入的当前单词都会带有下划线,一旦用户完成一个单词,该单词将根据输入时间改变颜色(例如 >5 秒 = 红色,
我的问题是如何在文本视图中为单词添加下划线和更改颜色,这样当我给新单词下划线时,它也会保持以前的颜色?
目前我每次移动到下一个单词时都会做这样的事情
String texts = myTextView.getText().toString();
// put the next word to be underlined between <u> </u> tags
myTextView.setText(html.fromHtml(texts));
如您所见,它会在下一个单词下划线,但之前单词的所有颜色都会丢失,但我想保留这些。
感谢您的帮助!
编辑:我的文字已经固定,用户必须输入他们看到的文字。例如,我有一个句子“Sample Sentence Hello”。我希望首先在“Sample”下划线,然后在“Sentence”下划线,“Sample”变为红色或绿色,然后在“Hello”下划线,“Sample”和“Sentence”根据所花费的时间分别变为红色或绿色用户输入每个单词。
【问题讨论】:
你应该使用 Spannable 类。 ***.com/questions/3282940/… @K.Gandhi 谢谢,正如我所见,我必须存储每个单词的起始索引才能使用 Spannable。对吗? 是的,你可以这样做。这只是基本的想法......你应该更容易地挖掘并让它工作。 【参考方案1】:试试这个方法来创建下划线
<resources>
<string name="your_string">
This is an <u>underline</u>.
</string>
</resources>
Java
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);
【讨论】:
谢谢。我得到了一些东西,但这仍然不是我的想法。我想一次只在文本中加下划线/更改颜色 1 个单词,并在继续下一个单词时保持先前单词的更改颜色。 我建议将单独的单词作为字符串或制作数组,然后使用 spannable 应用颜色 是的,我想我将句子拆分成一个数组是我现在能做的最好的方法。谢谢! 很高兴为您提供帮助,如果有帮助,请接受我的回答【参考方案2】:您可以通过编程将其设置为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 个单词?例如,我的文本视图包含句子“Sample Sentence”,我希望它首先将“Sample”一词加下划线,然后将“Sentence”下划线,“Sample”将颜色变为红色或绿色。 @Nguyen youtext
是static
或者可以写成User
。
@Nguyen 访问这里可能会对您有所帮助。 ***.com/questions/13238298/…以上是关于Android TextView中的下划线和更改文本颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章