0

我想用特殊的音乐符号绘制文字。例如,像 EADGBE、E#A#D#G#B#E# 之类的调音名称(升号和降号应该是 Unicode 符号 u266F 和 u266D。问题是特殊符号的左右空间很大。

我还发现这不仅是尖锐和平坦的问题,而且对于其他一些音乐符号也是如此。

有代码和结果:

    StringBuilder sb = new StringBuilder("ABCDEFG\n");
    sb.append("\u266F\u266F\u266F\n");
    sb.append("\u266D\u266D\u266D\n");
    for (int j = 10; j < 16; j++) {
        int charIndex = (2 * 16 * 16 * 16) + (6 * 16 * 16) + 6 * 16 + j;
        Character ch = Character.valueOf((char) charIndex);
        sb.append(ch);
    }

符号

我尝试使用另一种字体(例如,我下载了 Helvetica 和 Helvetica Neue 字体,将它们放入资产中并将它们设置在 TextView 上)但没有任何改变:符号的左右空间很大。

有什么办法可以解决吗?

4

1 回答 1

0

我认为它们不是空白...我运行您的代码并在 logcat 上打印每个字符。我发现:在你的图像上只出现 4 个符号,但 logcat 显示 6,也许字体不支持那种符号。

09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9834 = ♪
09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9835 = ♫
09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9836 = ♬
09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9837 = ♭
09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9838 = ♮
09-03 09:14:42.092: D/asd-asdasd(7486): Test character: 9839 = ♯
于 2013-09-03T16:23:00.487 回答