4

我正在尝试在 Android 的画布上绘制没有抗锯齿的文本。我要使用的字体是一个文件 cour.ttf,我已将它从我的 PC 的 C:\windows\fonts 目录复制到我的应用程序的资产目录中。

我正在使用这段代码:

paint.setColor(Color.BLACK);
paint.setTypeface(Typeface.createFromAsset(getAssets(),"cour.ttf"));
paint.setTextSize(20);
paint.setAntiAlias(false);
canvas.drawText("ABCDE abcde 12345 -+/#.",100,100,paint);

setAntiAlias 函数似乎没有任何效果。这张图显示了我的结果: http: //oi47.tinypic.com/35253wo.png

第一行是应用程序的屏幕截图,抗锯齿设置为 false。第二行是应用程序的屏幕截图,其中抗锯齿设置为 true。第三行是我期望得到的,它是我的电脑在 notepad.exe 中使用相同字体制作的屏幕截图。

我做错了什么还是这是关闭抗锯齿的预期输出?我在这里想要实现的是像素化的不模糊文本。

任何帮助深表感谢。

编辑:我还没有完全找到解决方案,但我确实发现了一些有趣的东西:添加android:hardwareAccelerated="false"到我的活动中清除了很多。Apperently这在Android 4上默认打开。仍然有一个(非常轻的)阴影可见,我想删除它。

禁用硬件加速的屏幕截图:http: //oi49.tinypic.com/aayypj.png

4

1 回答 1

2

PC和手机上的像素密度似乎不同,这就是文本外观不同的原因。您无法将手机呈现的文本与 PC 上呈现的文本进行比较。我觉得你手机的像素密度很高,所以你看不到抗锯齿的效果。

于 2012-05-08T17:17:48.107 回答