如何仅为textView的一部分设置背景图像

时间:2019-05-29 14:29:21

标签: java android textview

我有一个多行textview,我只想在textview的最后三个字符处设置背景图像->从tv.length()-3到tv.lenght()

3 个答案:

答案 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);