我有一个多行textview,我只想在textview的最后三个字符处设置背景图像->从tv.length()-3到tv.lenght()
答案 0 :(得分:0)
这可以为您带来很多帮助:
String input = "stackoverflow.com";
String firstCharactersResult = "";
String lastThreeCharactersResult = "";
if (input.length() > 3) {
firstCharactersResult = input.substring(0, input.length() - 3);
lastThreeCharactersResult = input.substring(input.length() - 3);
textView.setText(HtmlCompat.fromHtml(firstCharactersResult + "<font color=\"red\">" + lastThreeCharactersResult + "</font>", 0));
}
如果要更改背景,这很简单,只需使用2个TextViews! 将firstCharactersResult设置为第一个TextView,并将lastThreeCharactersResult设置为第二个TextView。
答案 1 :(得分:0)
您应该使用buildSpannedString:
buildSpannedString {
append("str1")
append(' ')
color(ContextCompat.getColor(context, R.color.red)) {
append("red text")
}
答案 2 :(得分:0)
我认为这会起作用:
Spannable spannable = new SpannableString(text);
spannable.setSpan(new ForegroundColorSpan(Color.WHITE), text.length(), text.length()-3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(spannable, TextView.BufferType.SPANNABLE);