Paint.setAntiAlias(false)没有效果?

时间:2012-05-05 08:49:10

标签: android paint android-canvas antialiasing

我正在尝试在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"添加到我的Activity中会将其清理一下。显然,这在Android 4上默认打开。但是仍然有一个(非常轻的)阴影可见,我想删除它。

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

1 个答案:

答案 0 :(得分:2)

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