Android textView中等加粗字体

本文介绍了一种在Android中实现中等加粗(Medium)字体的方法,通过调整TextPaint的描边宽度来达到效果,适用于需要在Android应用中匹配iOS设计稿中文字样式的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     一次偶然的机会发现了一个东西,在Android里面默认的textStyle只有加粗和不加粗,但是很多UI的设计稿是以IOS做的会有Medium中等加粗这个概念,查了一遍资料没有好用的。不过有看到说

//获取当前控件的画笔
TextPaint paint = tv.getPaint();
//设置画笔的描边宽度值
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL_AND_STROKE);

这样写的可以解决,我去试过不行。然后接着找资料,还是没找到,我只得回头来看这个是怎么回事

研究之后发现

paint.setStrokeWidth(2);     它的数值是  0-2(正常情况下) 0是普通字体  2是bold字体

所以我们开发中要使用中等字体  写0-2直接的数字就好。

不过不知道是我的错觉么,我最开始也是试过的发现不行,但是后面我试又可以了,不过我把参数写成  就可以

paint.setStrokeWidth(1.0f); float类型  

如果只是但个地方使用 

TextView tv3 = findViewById(R.id.tv3);
TextPaint paint = tv3.getPaint();
paint.setStrokeWidth(1.0f);
paint.setStyle(Paint.Style.FILL_AND_STROKE);

如果是多个地方要使用 ,可以这样写

public class MediumBoldTextView extends TextView {
    public MediumBoldTextView(Context context) {
        super(context);
    }

    public MediumBoldTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public MediumBoldTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //获取当前控件的画笔
        TextPaint paint = getPaint();
        //设置画笔的描边宽度值
        paint.setStrokeWidth(1.0f);
        paint.setStyle(Paint.Style.FILL_AND_STROKE);
        super.onDraw(canvas);
    }
}

这个范围值可以自己去控制

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值