在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!"文本顯示為紅色。