0
有人帮助我理解Android中疯狂的Canvas类。这似乎并不准确,我不太确定参数为什么是浮点值。例如,这里是我要画,绝对点值多边形:画布绘图准确性问题
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.RED);
mPaint.setAntiAlias(false);
mPaint.setDither(false);
mPaint.setFilterBitmap(false);
Path path1 = new Path();
path1.moveTo(151, 100);
path1.lineTo(200, 200);
path1.lineTo(100, 151);
path1.lineTo(200, 151);
path1.lineTo(100, 201);
path1.lineTo(151, 100);
// So that these points constitute a closed polygon
path1.setFillType(Path.FillType.EVEN_ODD);
mPaint.setStyle(Paint.Style.FILL);
mPaint.setColor(Color.GRAY);
// Draw the polygon
mCanvas.drawPath(path1, mPaint);
当我运行在Windows类似的代码与Windows GDI,它钉点准确。然而,在android中,有两个问题:
1)即使关闭了抗锯齿,该行看起来是反锯齿的(灰线周围有黑色像素)。 2)它并不总是碰到指定的点。有时这样做,有时不
确实为了更接近我想要的点,我必须这样做:
Path path1 = new Path();
path1.moveTo(151, 100-1);
path1.lineTo(200+1, 200+1);
path1.lineTo(100-1, 151);
path1.lineTo(200+2, 151);
path1.lineTo(100, 201);
path1.lineTo(151+1, 100);
我无法弄清楚这里的规则或它做什么那太奇怪了。