UI设计图中给出了字重为中粗(Medium),而android中的文字只有默认和加粗(bold)。
目前找到两种方式比较有效:
- 给TextView 的 TextPaint 设置 伪粗体 setFakeBoldText(true)
- 给TextView 的 TextPaint 设置文字边框宽度 setStrokeWidth(1.2f)
kotlin代码如下:
textView.paint.isFakeBoldText = true
textView.postInvalidate() // 或者 textView.invalidate()
或者:
val paint = textView.paint
paint.style = Paint.Style.FILL_AND_STROKE
paint.strokeWidth = 1.2f
textView.invalidate()
java代码:
textView.getPaint().setFakeBoldText(true);
textView.postInvalidate(); // 或者 textView.invalidate()
或者:
TextPaint paint = textView.getPaint();
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(1.2f);
textView.invalidate();
注意:设置好加粗后,如果想要动态显示,需要调用 invalidate()
或者 postInvalidate()
。