代码之家  ›  专栏  ›  技术社区  ›  arlomedia

如何使用Android Paint保留重音字符?

  •  1
  • arlomedia  · 技术社区  · 7 年前

    我正在使用Android将文本写入PDF文件 Paint , Canvas PdfDocument ,就像这样:

    String title = "Marián";
    Paint titlePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
    titlePaint.setTypeface(Typeface.DEFAULT);
    PdfDocument document = new PdfDocument();
    PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, document.getPages().size()).create();
    PdfDocument.Page page = document.startPage(pageInfo);
    Canvas canvas = page.getCanvas();
    canvas.drawText(title, 72, 72, titlePaint);
    

    问题是,像“Mari”n这样的单词会变成“Mari an”,重音字符会被替换为普通字符(而不是像我在编码问题中看到的那样被改为空框或问号)。

    这是我使用的“默认”字体的限制吗?我是否需要加载自定义字体并使用该字体,或者是否有更简单的方法来支持重音字符(最好是大范围的Unicode字符)?

    更新

    这似乎不是一个字体问题,因为我将字体从默认改为在屏幕上的文本视图中正确显示这些字符的自定义字体,但在画布上绘图时,重音标记仍会被删除。

    我还发现了一个关于硬件加速不支持的绘图操作的问题,所以我关闭了AndroidManifest中的硬件加速应用程序范围,但这没有任何区别。

    更新2

    0 回复  |  直到 7 年前