1

使用 Android 画布绘制命令:

如果我设置 stroke = 0 或 stroke =1 并绘制水平线,则线像素高两个像素。如果我设置 stroke = 2,像素也是两个像素高,但更亮。

如果我绘制单个像素,像素是一个 2x2 矩阵,笔画 = 0 或笔画 = 1。如果笔画 = 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);
4

2 回答 2

3

我就这个问题与 The Roman Guy @Google 进行了沟通。他说除了设置stroke = 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);
于 2012-07-27T00:04:03.940 回答
0

看来您需要更换线路

thePaint.setStyle(Paint.Style.FILL);

用这个代替:

thePaint.setStyle(Paint.Style.STROKE);
于 2012-07-24T12:21:07.487 回答