从低于SDK版本28的TypeFace创建TypeFaceSpan

时间:2019-03-27 01:37:07

标签: android textview android-typeface android-spannable

我找到了一种从createTypeFaceSpan TypeFace的方法,如下所示:

fun getTypeFaceSpan(typeFace:TypeFace) = TypeFaceSpan(typeFace)

但是,仅在 API级别> = 28 中允许使用此API。是否有 Compat 档案可以达到 28岁以下

1 个答案:

答案 0 :(得分:2)

TypeFaceSpan MetricAffectingSpan。因此,即使没有没有任何确切的方法TypeFaceSpan 获取 Span,我们也可以像下面这样制作CustomTypeFaceSpan并使用它代替TypeFaceSpan

class CustomTypefaceSpan(private val typeface: Typeface?) : MetricAffectingSpan() {
    override fun updateDrawState(paint: TextPaint) {
        paint.typeface = typeface
    }

    override fun updateMeasureState(paint: TextPaint) {
        paint.typeface = typeface
    }
}

并像这样使用它:

val typeFaceSpan = CustomTypefaceSpan(typeface)