HarmonyOS 使用drawTextBlob画中文出不来,是什么原因?

let brush_color_black : common2D.Color = { alpha: 0xFF, red: 0x00, green: 0x00, blue: 0x00 }
brush.setColor(brush_color_black)
canvas.attachBrush(brush)
const font = new drawing.Font()
font.setSize(100)

let tf=  new drawing.Typeface()
font.setTypeface(tf);
const textBlob = drawing.TextBlob.makeFromString("测试", font)
canvas.drawTextBlob(textBlob,120,340)
canvas.detachBrush()
HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

使用drawTextBlob画中文出不来可能是因为:默认情况下在Canvas API中使用的底层图形库不支持中文字符,要在Canvas上使用中文字符,需要使用支持中文字符的字体

可以参考以下来解决:

下载并安装支持中文字符的字体

在代码中加载字体,并将其设置为Typeface:

const font = new drawing.Font()
const fontMgr = drawing.FontMgrRef.default()
const typeface = fontMgr.makeFromFile('path/to/font.ttf')
font.setTypeface(typeface)
font.setSize(100)
分享
微博
QQ
微信
回复
7天前
相关问题
地图定位不准,是什么原因啊?
364浏览 • 1回复 待解决
ForEach无法遍历全部数据,是什么原因
2044浏览 • 1回复 待解决
有谁知道地图无瓦片是什么原因啊?
1999浏览 • 1回复 待解决