我正在尝试绘制一个矩形,其中Android中的线条宽度为两个像素。代码看起来像:
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
canvas.drawRect(left, top, right, bottom, paint);
在模拟器中,最右边的行从右边开始,然后再使用一个像素,最左边的像素从左边开始,再使用一个像素。换句话说,笔划宽度的额外像素呈现在两条线的右侧。使用真实设备时,最右边的行从右边1开始,换句话说,额外笔划宽度在矩形内呈现为所有行。
我没有使用其他真实设备进行测试,但我需要知道会发生什么。一个简单的解决方法是使用两个中风宽度为1的drawRect调用,但效率很低。
此行为是否未定义(以便我可以使用变通方法以便于移植)或者是否有办法控制它?
编辑:评论的答案 - 模拟器和设备具有相同的屏幕配置。我看到了另一篇文章,虽然类似但它并不完全相同?或者答案是没有可移植的方式来使用笔划宽度2,如果它在像素所在的位置很重要(比如我是在另一个矩形中绘制一个矩形并且需要相同的边距)?