Android中TextPaint标签的不同文本质量和输出

时间:2015-05-25 21:50:10

标签: android canvas text paint android-bitmap

我正在从我的Android应用程序创建一个可打印的标签(它是一个检查应用程序,允许您在蓝牙打印机上打印标签,以便在现场发现任何问题)。

我正在使用drawTextCanvas上绘制文字,并使用TextPaint设置我的绘画(样式等)。

如果您查看PaintTextPaint继承的Paint.ANTI_ALIAS_FLAG上可用的标志,您会看到许多与潜在质量相关的标记,例如抖动和抗锯齿

在查看其他教程后,他们似乎使用Paint.LINEAR_TEXT_FLAG(define (eat xs) (lambda (x) (if (eq? x 'vomit) (reverse xs) (eat (cons x xs))))) 中的一个或两个。

关于这些选项如何影响输出质量,特别是文本输出质量,还没有多少讨论。我知道一般情况下反抗锯齿和抖动是做什么的,但Android文档中没有官方推荐用于文本等等。

这有很好的资源吗?

1 个答案:

答案 0 :(得分:1)

DIY

有时最好的方法就是自己尝试一下,看看你想出了什么。

我有一个非常基本的标签我打印所以我用不同的标志组和字体样式组合打印它们。为了避免其他人检查所有这些选项(约2小时),我想我会分享我的结果。

我确实发现了一个有趣的发现:没有标记通常会产生最佳结果,至少对于文本而言,尤其是对于小型(10,20)文本大小。

从上到下的文字大小分别为10,20,30,40,50,60。

没有旗帜,Sans Serif No Flags, Sans Serif

反别名,Sans Serif Anti-Alias, Sans Serif

线性文字,无衬线 Linear Text, Sans Serif

Anti-Alias,Linear Text,Sans Serif Anti-Alias, Linear Text, Sans Serif

亚像素文字,无衬线 Subpixel Text, Sans Serif

提示,Sans Serif Hinting, Sans Serif

抖动,Sans Serif Dither, Sans Serif

没有标志,默认大胆 No Flags, Default Bold

没有旗帜,等宽 No Flags, Monospaced

消除锯齿,线性文字,等宽 Anti-Alias, Linear Text, Monospaced

没有旗帜,衬线 No Flags, Serif