我的建議是使用Spannable
。
這是一個簡短的使用方法,我打包供您使用。您只需傳遞TextView,全文和單個部分以從全文中重新着色。
可以將此方法放置到utils的類並調用它,只要你想要的,或保持在一個活動或片段(或其他任何地方),如果你在一個類中使用它:
public static void colorText(TextView view, final String fullText, final String whiteText) {
if (fullText.length() < whiteText.length()) {
throw new IllegalArgumentException("'fullText' parameter should be longer than 'whiteText' parameter ");
}
int start = fullText.indexOf(whiteText);
if (start == -1) {
return;
}
int end = start + whiteText.length();
SpannableStringBuilder finalSpan = new SpannableStringBuilder(fullText);
// finalSpan.setSpan(new ForegroundColorSpan(ContextCompat.getColor(view.getContext(),R.color.your_own_color_code)), start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
finalSpan.setSpan(new ForegroundColorSpan(Color.WHITE), start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
view.setText(finalSpan);
}
您可以用' Html.fromHtml'或者'Spannable字符串'('ForegroundColorSpan') – Blackbelt
你可以顯示它與我的代碼?我如何使用這種格式? –
我嘗試了幾個foregroundcolorspans和spannables,它根本沒有工作 –