如何仅使用尽可能少的代码行以编程方式更改视图中某些文本的背景?我试图在html中使用background标签,但是不幸的是它不支持,因此是否有任何可能的解决方法来实现类似下面的图像?

XML格式

<TextView
    android:id="@+id/main_textView0"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@android:style/TextAppearance.Medium"/>


爪哇

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    View v = getView();

    TextView txt = (TextView)v.findViewById(R.id.main_textView0);
    txt.setText(Html.fromHtml("<font color='#0099CC'>" + getResources().getString(R.string.hello) + "</font>" +
                    " " +
                    "<font color='#000000'>" + getResources().getString(R.string.world) + "</font>"
    ));

    super.onActivityCreated(savedInstanceState);
}

最佳答案

尝试Spannable,类似于:

            String str1 = "Hello";
            String str2 = "world";
            String message = str1 + " " + str2;

            Spannable spannable = new SpannableString(message);
            spannable.setSpan(new ForegroundColorSpan(Color.BLUE),0, str1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

            textView.setText(spannable);

07-26 08:00