原文记录到github:Kotlin 自定义带有边框的TextView - 可定义直角圆角
class BorderTextView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : AppCompatTextView(context, attrs) {
private var strokeWidth: Float // 边框线宽
private var strokeColor: Int // 边框颜色
private var cornerRadius: Float // 圆角半径
private var isTextSameColor: Boolean // 边框字体颜色相同
private var borderSkipLeft: Boolean
private var borderSkipTop: Boolean
private var borderSkipRight: Boolean
private var borderSkipBottom: Boolean
private val paint: Paint
private val rectF: RectF
init {
val ta = context.obtainStyledAttributes(attrs, R.styleable.BorderTextView)
strokeColor = ta.getColor(R.styleable.BorderTextView_BorderStrokeColor, Color.GRAY)
strokeWidth = ta.getDimension(R.styleable.BorderTextView_BorderStrokeWidth, 0f)
cornerRadius = ta