如何在Android上正确地进行抗锯齿字体处理?

5
有没有办法以视觉上令人愉悦的方式呈现自定义字体的文本(虽然我想系统字体可能不会有太大区别)?
我使用一个已分配自定义字体的画笔在画布上呈现文本。
我找到的唯一与抗锯齿相关的命令是“paint.setAntiAlias”。但文本仍然看起来很糟糕,几乎和Photoshop中没有抗锯齿一样糟糕。
那么...有没有办法做到这一点?
另外... 由于这是为游戏而设计的,位图字体是一个常见的替代方案,但由于我想要正确的字母间距,我必须编写一个相当复杂的位图字体类来实现。因为我没有找到一个已经存在的位图字体类。只有libgdx似乎包含一个。但那个与库紧密集成,需要进行大量修改。所以如果这里有人知道一个不需要那样做的字体类,那也将是很有帮助的。
我的代码片段作为参考,尽管它非常基本且完美地工作,但我不认为它很重要:
    textPaint = new Paint();
    textPaint.setTextSize(size);
    textPaint.setAntiAlias(true);
    textPaint.setARGB(0xff, 0xff, 0xff, 0xff);
    textPaint.setTypeface(Typeface.createFromAsset(pView.getContext().getAssets(),
            "fonts/cordia.ttf"));
...
    canvas.drawText(text, (int)(dimension / 2 - textwidth / 2), 
              (int)(dimension / 2 - size / 2), textPaint);
1个回答

1
你可以为Android构建freetype(http://freetype.org/)。它只依赖于zlib,生成的字体非常漂亮。大多数专利问题最近已经解决(专利已过期)。

我不知道如何做那个。但是非常感谢你的建议! 我想我可能必须适应libgdx的bitmapfont类...或者有很多很多带有静态文本的纹理。嗯。 - edwardh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接