Java Android-线条绘制问题

Java Android-线条绘制问题,java,android,line,android-canvas,Java,Android,Line,Android Canvas,我正在写一个显示分数的小应用程序,当我画线的时候,我遇到了一个问题。在同一点上,线没有正确绘制。下面是一张图片来说明我所说的: 代码如下: int x = canvas.getWidth(); int y = 0; int x_margin = 40; int y_margin = 60; for (int i=1; i < 51; i++) { canvas.drawLine(x_margin, y + y_margin, x - x_margin, y + y_margin

我正在写一个显示分数的小应用程序,当我画线的时候,我遇到了一个问题。在同一点上,线没有正确绘制。下面是一张图片来说明我所说的:

代码如下:

int x = canvas.getWidth();
int y = 0;
int x_margin = 40;
int y_margin = 60;

for (int i=1; i < 51; i++) {
    canvas.drawLine(x_margin, y + y_margin, x - x_margin, y + y_margin, mLinePaint);

    if (i % 5 == 0) {

        if ((i % 10 != 0) && (tracks == 2)) {
            canvas.drawLine(x_margin, y + y_margin, x_margin, y + y_margin + 40, mLinePaint);
            canvas.drawLine(x - x_margin, y + y_margin, x - x_margin, y + y_margin + 40, mLinePaint);

            y += 40;
        }

        else {
            y += 60;
        }

    }
    else {

        canvas.drawLine(x_margin, y + y_margin, x_margin, y + y_margin + 15, mLinePaint);
        canvas.drawLine(x - x_margin, y + y_margin, x - x_margin, y + y_margin + 15, mLinePaint);

        y += 15;
    }
}
intx=canvas.getWidth();
int y=0;
整数x_边距=40;
整数y_边距=60;
对于(int i=1;i<51;i++){
画布.抽绳(x_边距,y+y_边距,x-x_边距,y+y_边距,MLINPAINT);
如果(i%5==0){
如果((i%10!=0)和&(磁道==2)){
画布.抽绳(x_边距,y+y_边距,x_边距,y+y_边距+40,MLINPAINT);
画布.抽绳(x-x_边距,y+y_边距,x-x_边距,y+y_边距+40,MLINPAINT);
y+=40;
}
否则{
y+=60;
}
}
否则{
画布.抽绳(x_边距,y+y_边距,x_边距,y+y_边距+15,MLINPAINT);
画布.抽绳(x-x_边距,y+y_边距,x-x_边距,y+y_边距+15,MLINPAINT);
y+=15;
}
}
有人知道为什么会这样吗


提前感谢。

您是否检查过以确保它不是仿真器。如果您在手机上运行它,它可能工作正常。

您是否检查过它,以确保它不是模拟器。如果您在手机上运行它,它可能会正常工作。

这是因为线路开始和结束时的y值略有不同,请确保两个y值完全相同

你也可以试试

youCanvas.setDrawFilter(new PaintFlagsDrawFilter(Paint.ANTI_ALIAS_FLAG,Paint.DITHER_FLAG));

之所以发生这种情况,是因为行的开头和结尾的y值略有不同,请确保两个y值完全相同

你也可以试试

youCanvas.setDrawFilter(new PaintFlagsDrawFilter(Paint.ANTI_ALIAS_FLAG,Paint.DITHER_FLAG));

我想这与数学坐标和“真实”像素坐标之间的转换有关

我建议画两次或更多的线,以验证错误总是发生在相同的点上

我也会在真实的设备上测试它,问题可能与android和PC屏幕之间的屏幕坐标转换有关


祝你好运,这个bug并不好笑

我想这与数学坐标和“真实”像素坐标之间的转换有关

我建议画两次或更多的线,以验证错误总是发生在相同的点上

我也会在真实的设备上测试它,问题可能与android和PC屏幕之间的屏幕坐标转换有关

祝你好运,这只虫子不好笑