我的Nexus 7上有一些奇怪的行为
我一直在使用Sassoon Primary ttf在我自己的视图中使用画布中心的drawText绘制单个字母。除了我的nexus 7之外,我在所有测试的模型上都能正常工作。
除小写字母f和j
外,所有字母仍然有效我已经在4.2.2模拟器上进行了测试,它的工作正常,以及4.0.3,4.1.2和2.3
为了更好的衡量,我已将其设置回默认字体,现在它绘制F而不是J。
有没有人有同样的问题或可以重新创建?
我的油漆
textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setTextSize(650);
textPaint.setAntiAlias(true);
textPaint.setTextAlign(Align.CENTER);
textPaint.setTypeface(font);
textPaint.setDither(true);
onDraw命令
canvas.drawText(letter, center, center, textPaint);
编辑:结果是它的大小650,我需要它。降低时,然后工作。如何保持我所需的尺寸?
由于
答案 0 :(得分:2)
您使用的字体太大,无法容纳在字体缓存中。您可以在Canvas上使用较小的字体大小和缩放变换的组合来实现所需的效果。您还可以在绘制该字母的视图上使用软件层(请参阅View.setLayerType()
)。