-1

我想创建一个TextView并有两个​​文本或具有两种颜色的文本...

我创造了这个; 在此处输入图像描述

我希望样品店颜色变为红色,搜索为蓝色...

我的 xml 代码:

    <TextView
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:layout_marginLeft="5dp"
    android:layout_marginTop="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginBottom="5dp"
    android:background="@drawable/search_bg"
    android:drawableRight="@drawable/search"
    android:drawableTint="@color/day_dark_blue"
    android:paddingRight="15dp"
    android:gravity="center"
    android:layout_gravity="center|center_vertical"
    android:text="search in Sample Shop"
    android:textColor="@color/day_dark_blue"
    android:textSize="18sp" />
4

2 回答 2

0

您可以尝试使用SpannableString

// in the .kt file
val spannable = SpannableString("search in the Sample Shop")
    
spannable.setSpan(
     ForegroundColorSpan(Color.RED), 
     10, 20, 
     Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

// 10, 20: start and end index of Sample Shop

myTextView.text = spannable

一篇有用的文章:使用 Spans 进行 Spantastic 文本样式设置

于 2021-02-02T16:04:28.257 回答
0

您可以使用 SpannableString 来实现相同的目的。

TextView TV = (TextView)findViewById(R.id.textView);

Spannable wordtoSpan = new SpannableString("search in Sample Shop");        

wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

wordtoSpan.setSpan(new ForegroundColorSpan(Color.RED), 10, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

TV.setText(wordtoSpan);
于 2021-02-02T16:04:58.370 回答