收藏
回答

canvas的setFontSize,setFillStyle等偶尔无效

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug setFontSize,setFillStyle,setTextAlign 客户端 Android 6.6.7 2.0.6

用canvas画图时在安卓真机上偶尔会出现setFontSize,setFillStyle,setTextAlign这几个设置参数无效,重新生成几次都正常,平均每5次会出现一次的样子

最后一次编辑于  2018-07-23  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

8 个回答

  • Creator
    Creator
    2018-10-16

    setTextAlign设置了center之后在设置start安卓上每次都不起作用。

    2018-10-16
    赞同 1
    回复 1
    • Creator
      Creator
      2018-10-16

      使用延迟也不起作用

      2018-10-16
      回复
  • 喔喔哦
    喔喔哦
    2018-07-23

    用wx.save()保存了吗?

    2018-07-23
    赞同
    回复 7
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-07-23

      就画头像的时候save了,画完就restore了

      2018-07-23
      回复
    • 喔喔哦
      喔喔哦
      2018-07-23回复想食椒盐鸭下巴

      每画完一个ctx.setFontSize()所属的部分都用ctx.save()保存下试试,不要用ctx.restore()回归了。


      2018-07-23
      回复
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-07-23回复喔喔哦

      好的我试试哈

      2018-07-23
      回复
    • Alex
      Alex
      2018-07-26回复想食椒盐鸭下巴

      你好请问这个问题 解决了吗?

      2018-07-26
      回复
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-07-27回复Alex

      没有呢QAQ

      2018-07-27
      回复
    查看更多(2)
  • Afan
    Afan
    2018-07-24

    给楼主安利一波

    https://github.com/AfanSama/esay-canvas

    2018-07-24
    赞同
    回复 2
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-07-24

      恩谢谢哈这个之前看过了感觉有点大没用上

      2018-07-24
      回复
    • Afan
      Afan
      2018-07-24回复想食椒盐鸭下巴

      不大的呀,一共12kb


      2018-07-24
      回复
  • 奔波儿灞
    奔波儿灞
    2018-08-01

    我也碰到这个问题了,有时候整片都是乱的,楼主解决了吗

    2018-08-01
    赞同
    回复 6
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-08-01

      在draw的回调里加了setTimeout延迟了300毫秒,好像就好了

      2018-08-01
      1
      回复
    • 咻咻superme~
      咻咻superme~
      2018-08-01回复想食椒盐鸭下巴

      具体怎么加的?draw的回调执行时canvas不久画完了吗?

      2018-08-01
      回复
    • 奔波儿灞
      奔波儿灞
      2018-08-01回复咻咻superme~

      还真的可以,我只是生成的图片有问题,因为canvas是隐藏起来的,没有看到绘出来的图有问题,但是延迟300毫秒在生成图片就真的没有问题了

      2018-08-01
      回复
    • 奔波儿灞
      奔波儿灞
      2018-08-01回复想食椒盐鸭下巴

      所以楼主绘出来的图有问题吗?

      2018-08-01
      回复
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-08-02回复奔波儿灞

      暂时是没有问题了,不确定和机型有没有关系

      2018-08-02
      回复
    查看更多(1)
  • 咻咻superme~
    咻咻superme~
    2018-08-01

    跟楼主遇到同样的问题,也只能优化降低出错的机率,这是正常的图片:



    文字变大问题:(还有图片变透明、文字颜色不正确等等)





    2018-08-01
    赞同
    回复 2
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-08-02

      我是在draw的回调了加了个setTimeout延迟300毫秒再转换成图片,暂时就没看到文字参数设置不了的问题了

      2018-08-02
      回复
    • 咻咻superme~
      咻咻superme~
      2018-08-02

      感谢分享,我去试一下

      2018-08-02
      回复
  • 阿伟
    阿伟
    2018-08-09

    我也出现这样的问题,我现在也是在draw后面加延迟来解决,怎么没官方的人出来解释一下

    2018-08-09
    赞同
    回复
  • 不是假发,是桂
    不是假发,是桂
    2018-08-15

    请问是每画一个文字延时draw一次还是全部画完之后延时draw一次

    2018-08-15
    赞同
    回复 1
    • 想食椒盐鸭下巴
      想食椒盐鸭下巴
      2018-08-16

      ctx.draw(true, () => {

          setTimeout(() => {

              ...

          }, 300)

      })


      操作都写进去了一次性draw的回调里写延时就行的了

      2018-08-16
      回复
  • 润豪
    润豪
    09-09

    看到这帖子十分感动, 万能的setTimeout又一次拯救了我的发际线

    09-09
    赞同
    回复