Android TextView设置字体粗细只有三种状态,textStyle取值只有bold、nomral、italic、客户需求是字体是medium粗细,只因ios是有medium属性,Android被要求要一样;

要实现这种方式,我们可以换另外一种思想去做,既然没有medium,那就改变Paint的宽度,也就是画笔的笔迹宽度,等同于改变于字体的粗细程度,而且更具灵活性,可以自由来调控宽度大小;使用setStrokeWidth(num)方法即可

实现起来也及其简单,如下:

单一实现为

TextView tvTitle = findViewById(R.id.title);

TextPaint  tp = tvTitle.getPaint();

tp.setStrokeWidth(1.0f)

setStrokeWidth()方法需要传入一个float值,数值越大,字体越粗,0.0f表示常规画笔的宽度,相当于默认情况。

全局实现为

继承TextView即可,在onDraw方法里面调用setStrokeWidth()方法即可,宽度自由可控。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐