问题描述
|
有没有什么方法可以以自定义字体呈现文本(尽管我认为系统字体可能不会太大不同)?
我使用分配了自定义字体的颜料在画布上渲染文本。
我发现唯一与抗锯齿远程相关的命令是绘画的“ setAntiAlias”。但文字看起来仍然很恐怖。几乎与在Photoshop中完全没有抗锯齿一样糟糕。
所以...有什么办法吗?
和...
由于这是用于游戏的,因此位图字体是一种常用的替代方法,但是由于我要具有适当的字母间距,因此我必须编写相当复杂的位图字体类才能实现此目的。因为我还没有找到一个已经存在的。只有libgdx似乎包含一个。但是该库与该库紧密集成,因此必须进行很多修改。因此,如果这里有人知道不需要这样的东西,那也将有很大帮助。
从我的代码中摘录作为参考,尽管它是如此基础,并且运行得很好,以至于我没有想到它的相关性:
textPaint = new Paint();
textPaint.setTextSize(size);
textPaint.setAntiAlias(true);
textPaint.setARGB(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);
解决方法
您可以为Android构建freetype(http://freetype.org/)。它仅依赖于zlib,因此生成的字体非常好。大多数专利问题最近都得到了解决(专利已过期)。