我使用 drawText 将一些文本绘制到画布上。在 Android 4.2.2 之前,坐标 0,0 位于左上角,0.5/0.5 位于画布的中心。在 Android 4.2.2 中,当我绘制到 0.5/0.5 时,文本位于画布的左边缘,而 1.0/0.5 位于中心。所以它在 x 轴上移动了 0.5。
这是代码:
Canvas backgroundCanvas = new Canvas(background);
float scale = (float) getWidth();
backgroundCanvas.scale(scale, scale);
final int desityDPi = getResources().getDisplayMetrics().densityDpi;
float convertedTextSize = (float) valueTextSize / (float) desityDPi;
scalePaint.setTextSize(convertedTextSize);
scalePaint.setTextAlign(Paint.Align.CENTER);
backgroundCanvas.drawColor(Color.GREEN);
backgroundCanvas.drawText("x", 0.5f, 0.5f, scalePaint);
backgroundCanvas.drawText("+", 1.0f, 0.5f, scalePaint);
所以在 Andriod < 4.2.2 中,x 位于画布的中心,而在 Android 4.2.2 中,+ 位于中心。
我不知道发生了什么-我认为这不正常。
代码有问题还是我真的必须编写一个 if 语句来区分坐标的 Android 版本?