使用Android画布绘制命令:
如果我设置stroke = 0或stroke = 1并绘制水平线,则行像素为两个像素高。如果我设置stroke = 2,则像素也是两个像素高但更亮。
如果我绘制单个像素,则像素为2x2矩阵,用于stroke = 0或stroke = 1.如果stroke = 2,我也会获得2x2矩阵,但像素更亮。
我必须做些什么来获得只有一个像素高的线条? 我必须做些什么来获得像素的唯一像素?
注意:使用的设备屏幕尺寸为480 x 800或更高。
Paint thePaint = new Paint();
thePaint.setARGB(a, r, g, b);
thePaint.setAntiAlias(true);
thePaint.setStyle(Paint.Style.FILL );
thePaint.setStrokeWidth(0);
canvas.drawLine(x1,y1,x2,y2, thePaint);
答案 0 :(得分:3)
我与The Roman Guy @Google就此问题进行了沟通。他说除了设定中风= 0之外,需要关闭AntiAlias。我的测试表明他是对的。 Google文档目前不反映此要求。这段代码有效。
Paint thePaint = new Paint();
thePaint.setARGB(a, r, g, b);
thePaint.setAntiAlias(false);
thePaint.setStyle(Paint.Style.STROKE );
thePaint.setStrokeWidth(0);
canvas.drawLine(x1,y1,x2,y2, thePaint);
答案 1 :(得分:0)
看起来您需要替换
行thePaint.setStyle(Paint.Style.FILL);
代之以:
thePaint.setStyle(Paint.Style.STROKE);