android上的反别名字体是否正确?
作者:互联网
是否有任何方式使用自定义字体呈现文本(虽然我认为系统字体可能没有太大的不同)以一种视觉上令人愉悦的方式?
我在画布上渲染我的文字,使用我为其指定了自定义字体的颜料.
我发现远程与抗锯齿相关的唯一命令是油漆的“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);
解决方法:
您可以为Android构建freetype(http://freetype.org/).它只对zlib有依赖性,结果字体非常好.大多数专利问题最近得到解决(专利已过期).
标签:android,text,fonts,antialiasing 来源: https://codeday.me/bug/20190710/1419377.html