在设备和模拟器中以不同方式呈现的笔画宽度为2的Android drawRect

时间:2014-05-09 10:25:34

标签: android drawrect

我正在尝试绘制一个矩形,其中Android中的线条宽度为两个像素。代码看起来像:

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.STROKE);
    paint.setStrokeWidth(2);
    canvas.drawRect(left, top, right, bottom, paint);

在模拟器中,最右边的行从右边开始,然后再使用一个像素,最左边的像素从左边开始,再使用一个像素。换句话说,笔划宽度的额外像素呈现在两条线的右侧。使用真实设备时,最右边的行从右边1开始,换句话说,额外笔划宽度在矩形内呈现为所有行。

我没有使用其他真实设备进行测试,但我需要知道会发生什么。一个简单的解决方法是使用两个中风宽度为1的drawRect调用,但效率很低。

此行为是否未定义(以便我可以使用变通方法以便于移植)或者是否有办法控制它?

编辑:评论的答案 - 模拟器和设备具有相同的屏幕配置。我看到了另一篇文章,虽然类似但它并不完全相同?或者答案是没有可移植的方式来使用笔划宽度2,如果它在像素所在的位置很重要(比如我是在另一个矩形中绘制一个矩形并且需要相同的边距)?

0 个答案:

没有答案