为字符串中的字符串数组中的项目应用斜体 xml
applying italic for item in string-array in a string xml
我有一个包含几个段落的字符串数组。一个单词包含斜体。我如何为特定的 word-textview 应用斜体字体。我知道我们可以使用 spannable 应用斜体。但还有其他方法吗?
<string-array name="string_collections" formatted="false">
<item>nutrients and weakens the <![CDATA[<i>Agni</i>]]>(digestive fire) within the stomach. Ayurveda recommends sipping minimal amounts during meals, with larger volumes spaced throughout the day, always away from food.
\n</item>
显示为文本。使用 Html.fromHtml 方法无效。
试试这个:-
尝试 Html.fromHtml(),并用粗体和斜体标记您的文本 HTML 标签,例如:
Spanned text = Html.fromHtml("This mixes <b>bold</b> and <i>italic</i> stuff");
textView.setText(text);
我发现一个更好的方法 self.just 使用 Matcher 并获取它的索引。
java.util.regex.Pattern p =
java.util.regex.Pattern.compile("(^|\s)word\b",
java.util.regex.Pattern.CASE_INSENSITIVE);
final Matcher matcher = p.matcher(whole_text);
final SpannableStringBuilder spannable = new SpannableStringBuilder(whole_text);
while (matcher.find()) {
Log.e("Spannable", "Spannable" +"Matchfound");
//apply span which you want.
spannable.setSpan(new StyleSpan(Typeface.ITALIC), matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tvtextmsg.setText(spannable);
注意:刚刚发现我在使用时遇到的另一个问题
如果你想做如下
tvtextmsg.setText(spannable+"\n \n"+another_text);
spannable 不会受到影响。您需要按照
tvtextmsg.setText(spannable);
tvtextmsg.append("\n \n"+another_text)
我有一个包含几个段落的字符串数组。一个单词包含斜体。我如何为特定的 word-textview 应用斜体字体。我知道我们可以使用 spannable 应用斜体。但还有其他方法吗?
<string-array name="string_collections" formatted="false">
<item>nutrients and weakens the <![CDATA[<i>Agni</i>]]>(digestive fire) within the stomach. Ayurveda recommends sipping minimal amounts during meals, with larger volumes spaced throughout the day, always away from food.
\n</item>
显示为文本。使用 Html.fromHtml 方法无效。
试试这个:-
尝试 Html.fromHtml(),并用粗体和斜体标记您的文本 HTML 标签,例如:
Spanned text = Html.fromHtml("This mixes <b>bold</b> and <i>italic</i> stuff");
textView.setText(text);
我发现一个更好的方法 self.just 使用 Matcher 并获取它的索引。
java.util.regex.Pattern p =
java.util.regex.Pattern.compile("(^|\s)word\b",
java.util.regex.Pattern.CASE_INSENSITIVE);
final Matcher matcher = p.matcher(whole_text);
final SpannableStringBuilder spannable = new SpannableStringBuilder(whole_text);
while (matcher.find()) {
Log.e("Spannable", "Spannable" +"Matchfound");
//apply span which you want.
spannable.setSpan(new StyleSpan(Typeface.ITALIC), matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tvtextmsg.setText(spannable);
注意:刚刚发现我在使用时遇到的另一个问题 如果你想做如下
tvtextmsg.setText(spannable+"\n \n"+another_text);
spannable 不会受到影响。您需要按照
tvtextmsg.setText(spannable);
tvtextmsg.append("\n \n"+another_text)