canvas 此类设置canvasContext.font = value 无效
发布于 7 年前 作者 jie11 863 次浏览 来自 问答

在canvas中要设置文字字体,官方示例为:我怎么写都无效呢,请问正确用法?

canvasContext.font = value
4 回复

代码:

const back_ctx = wx.createCanvasContext(‘back_canvas’);

back_ctx.setFontSize(13);

back_ctx.font = “weight: bold”;

back_ctx.setTextAlign(‘right’);

back_ctx.setFillStyle("#000");

back_ctx.fillText(‘font写法不是这样的么?’, 306, 232);

出现的错误为:

Failed to set ‘font’ on ‘CanvasContext’: invalid format.

我的编译版本是2.2.2,应该是不需要做兼容处理吧。这个估计是用法不对,但是找不到。

在网上找到一个字体加粗的方法:

if (obj.bold) {

           this.ctx.fillText(obj.text, obj.x, obj.y + 0.5);

           this.ctx.fillText(obj.text, obj.x + 0.5, obj.y);

}

请问是不是确实不支持。

  1. 注意确认各平台所支持的字体

  2. 基础库 1.9.90 开始支持,低版本需做兼容处理

  3. 开发者工具测试的话,要设置对应的基础库版本

我先前开过个帖子问过关于设置字体样式,按照官方例子设置无效,即使自己在项目里添加了字体文件也没用,官方也没有解答,但是粗体、斜体、字号这些是没问题的。

还真不是这样写的。。粗体 斜体 字号 是可以设置的,就按照官方例子里的设。但是 font-family 无法设置成 loadFont 获取的字体,系统自带的字体可以设的。android和iOS自带的字体,可以百度下~

回到顶部