我有什么选择来显示不同颜色的句子部分?

Pen*_*m10 2 android

我有一个更长的句子> 200个字符.我需要在屏幕上显示不同颜色的部分,比如突出显示搜索结果,每个颜色都不同.文本应自动换行屏幕宽度,并且部件之间没有断开部分.我的意思是我可以将部分放在新的一行上.他们必须继续前一部分,只在屏幕关闭时换行.

最好的是EditText,因为我还需要允许编辑,但我想知道我能够改变各种句子部分的颜色,或者只是作为一个整体.

您如何看待,我可以通过哪些UI元素实现此视图?

Rof*_*ion 6

或多或少有两种不同的方式来实现这一目标:

1)我认为,官方方式,使用Spannable:

http://developer.android.com/reference/android/text/Spannable.html

使用Spannable,您可以执行以下操作:

Spannable spannable = (Spannable) yourTextView.getText();
spannable.setSpan(new BackgroundColorSpan(0xFF0000), startPosition, endPosition, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Run Code Online (Sandbox Code Playgroud)

我在示例代码中使用了不同的Spannables,如BackgroundColorSpan.这里解释 Flags ,在这个包中你可以找到不同的Spannable可能性.

2)一种更简单的方法,但或多或​​少未记录的方式是使用HTML标签.例如,您可以使用以下代码:

String textString ="<font color='#ff0000' > <b>hello</b> </font>"

yourTextView.setText(Html.fromHtml(textString)) 
Run Code Online (Sandbox Code Playgroud)

我不确定支持哪些HTML标记.我不知道这个的文档,所以我想你只需要尝试.但至少粗体字体和彩色字体在我正在我的应用程序中使用的代码中工作.