Android:Paint.measureText()意外地在4.4中舍入?

时间:2013-12-10 20:42:48

标签: android

我大量使用Paint.measureText()方法,并且惊讶地发现在4.4中,此方法返回的float总是向上舍入。在以前的版本中,没有发生舍入。我在4.0.4设备和4.4设备上运行以下代码。 4.0.4设备的结果是第一个,4.4设备的结果是第二个。

有关如何在4.4中获取非基础值的任何建议,可能我错过了Paint的新属性?

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    Paint p = new Paint();
    p.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL));
    p.setTextSize(1);
    p.setAntiAlias(true);
    p.setSubpixelText(true);

    Log.e("T", p.measureText("T")+"");
    Log.e("h", p.measureText("h")+"");
    Log.e("e", p.measureText("e")+"");
    Log.e("L", p.measureText("L")+"");
    Log.e("a", p.measureText("a")+"");
    Log.e("z", p.measureText("z")+"");
    Log.e("y", p.measureText("y")+"");
    Log.e("w", p.measureText("w")+"");
}

4.0.4:

0.59375 0.5625 0.515625 0.546875 0.546875 0.5 0.5 0.75

4.4:

1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0

0 个答案:

没有答案