Android,线宽,像素大小

时间:2012-07-24 01:10:54

标签: android line pixel

使用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);

2 个答案:

答案 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);