我正在尝试在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
答案 0 :(得分:2)
PC和手机上的像素密度似乎不同,这就是文本外观差异的原因。您无法将手机呈现的文本与PC上呈现的文本进行比较。我认为手机上的像素密度很高,所以你无法看到抗锯齿效果。