Nexus 7 4.2.2画布drawtext字母f和j不会显示

时间:2013-06-10 17:49:39

标签: android canvas ondraw drawtext nexus-7

我的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,我需要它。降低时,然后工作。如何保持我所需的尺寸?

由于

1 个答案:

答案 0 :(得分:2)

您使用的字体太大,无法容纳在字体缓存中。您可以在Canvas上使用较小的字体大小和缩放变换的组合来实现所需的效果。您还可以在绘制该字母的视图上使用软件层(请参阅View.setLayerType())。