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屏幕之间的屏幕坐标转换有关 祝你好运,这只虫子不好笑