在Android中,要处理富文本(Rich Text),可以使用SpannableString
和Spanned
对象来设置文本的颜色、样式等
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
}
SpannableString
对象,并设置文本和颜色:import android.graphics.Color
import android.text.SpannableString
import android.text.Spanned
import android.text.style.ForegroundColorSpan
fun setTextColor(text: String, color: Int): SpannableString {
val spannableString = SpannableString(text)
val foregroundColorSpan = ForegroundColorSpan(color)
spannableString.setSpan(foregroundColorSpan, 0, text.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
return spannableString
}
在这个示例中,我们创建了一个名为setTextColor
的函数,它接受一个字符串和一个颜色值作为参数。然后,我们使用SpannableString
来包装原始文本,并使用ForegroundColorSpan
将文本颜色设置为指定的颜色。
TextView
显示富文本:<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
setTextColor
函数设置文本颜色,并将其应用到TextView
:import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.SpannableString
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.textView)
val text = "Hello, World!"
val color = Color.RED
val spannableString = setTextColor(text, color)
textView.text = spannableString
}
}
在这个示例中,我们首先在布局文件中创建了一个TextView
。然后,在Activity中,我们使用setTextColor
函数设置文本颜色,并将其应用到TextView
。这将使"Hello, World!"文本显示为红色。