为了账号安全,请及时绑定邮箱和手机立即绑定

使用 UTF-16 将文本绘制到画布

使用 UTF-16 将文本绘制到画布

蛊毒传说 2023-12-30 15:50:19
我想画这个音符:𝄞 (U+1D11E) 音乐符号 G 谱号String musicalNote = "\uD834\uDD1E" // UTF-16 canvas.drawText(musicalNote, pos.x, pos.y, paint);如果我将字符串 musicNote 输出到控制台,它将正确显示。但如果我将它绘制到画布上,它将绘制一个矩形。我使用的是android的默认字体,我也尝试了默认的等宽字体。难道是字体没有这个字符?或者我需要以不同的方式对其进行编码?
查看完整描述

1 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

问题是字体不支持该字符。


可以测试字体是否有字符,如下所示:


String musicalNote = "\uD834\uDD1E" // UTF-16

paint.setTypeface(Typeface.DEFAULT); // default font

if (paint.hasGlyph(musicalNote)) {

    // font has glyph

} else {

    // font does not have glyph

}


查看完整回答
反对 回复 2023-12-30
  • 1 回答
  • 0 关注
  • 56 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信