android 如何在 textview 的内容中添加描边

How to add stroke in content of textview in android

我不想使用图片资源。 textview 中的文本应该像上面的 image.Is 一样,可以在 xml 或 java/kotlin 代码中以任何方式实现此样式。我也不想使用 canvas 绘画。请帮忙

看看这个library

例子

<com.biomorgoth.outlinetextview.StrokedTextView
        android:id="@+id/your_text_view"
        android:text="I am a StrokedTextView!"
        android:textColor="@android:color/white"
        android:textSize="25sp"
        strokeAttrs:textStrokeColor="@android:color/black"
        strokeAttrs:textStrokeWidth="1.7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

示例 2

<com.biomorgoth.outlinetextview.StrokedEditText
        android:id="@+id/your_edit_text"
        android:hint="Write here!"
        android:textColor="@android:color/white"
        android:textColorHint="#5fff"
        android:textSize="25sp"
        strokeAttrs:textStrokeColor="@android:color/black"
        strokeAttrs:textStrokeWidth="1.7"
        strokeAttrs:textHintStrokeColor="#5000"
        strokeAttrs:textHintStrokeWidth="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

在 Internet 某处找到。我已经创建了一个自定义的 textview 并且在 onDraw 方法中使用了下面的代码,它使用 canvas 绘图来创建 textview 效果的文本轮廓。

 override fun onDraw(canvas: Canvas?) {
    super.onDraw(canvas)
    if(strokeColor!=null)
    {
        val textColor = textColors

        val paint = this.paint

        paint.style = Paint.Style.STROKE
        paint.strokeJoin = strokeJoin
        paint.strokeMiter = strokeMiter    //10f
        this.setTextColor(strokeColor)
        paint.strokeWidth = strokeWidth    //15f

        super.onDraw(canvas)
        paint.style = Paint.Style.FILL

        setTextColor(textColor)
        super.onDraw(canvas)

    }
}