收藏
回答

measureText第二次获取的宽度与第一次不一样

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug measureText 微信iOS客户端 iOS 1 1

同一个文字,measureText第二次获取的宽度与第一次不一样,第二次开始获取的宽度比第一次要宽,不知道为什么。

第一次:



第二次:请注意2个红框框是第二次多出的宽度。



实现代码:


const ctx = wx.createCanvasContext('myCanvas')

const metrics1 = ctx.measureText('公司').width


重复操作会变成宽度不一样的结果,什么意思?


回答关注问题邀请回答
收藏

6 个回答

  • 唐诗三百首
    唐诗三百首
    2020-04-22

    ctx.measureText('公司').width 会以第一次的 字体大小来计算字体长度。

    把 设置 ‘公司’ 字体的 ctx.setFontSize()

    放到ctx.measureText('公司').width,前面去,

    2020-04-22
    有用 2
    回复 1
    • 北笙
      北笙
      2020-12-25
      我这也遇到了,ctx.measureText('公司').width执行两次返回的宽度不一样,在获取宽度之前设置好ctx.setFontSize()就没问题了
      2020-12-25
      回复
  • Layne
    Layne
    2019-10-29

    我不知道哪一次是对的了,第二次开始以后的宽度都是一致的。

    2019-10-29
    有用
    回复
  • 2018-08-29

    我也遇到了

    2018-08-29
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2018-05-02

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-05-02
    有用
    回复 1
    • 2018-08-29

      我也遇到了

      2018-08-29
      回复
  • JJ
    JJ
    2018-04-29

    比如我生成第一次图片,宽度是对的,生成第二次画图宽度就不对了,图的内容是一样的。如果图的内容不一样宽度也是对的,也就是同样内容的图片生成第二次时宽度是错的。

    2018-04-29
    有用
    回复
登录 后发表内容