我想畫這個音符:?? (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
}
添加回答
舉報
0/150
提交
取消