此代码工作并绘制一个ok:
paintComponent(canvas);
p=new Paint();
p.setColor(Color.RED);
for(int i=1;i<pointA.size();i++){
int beginx=pointA.get(i-1).x, beginy=pointA.get(i-1).y,endx= pointA.get(i).x,endy= pointA.get(i).y;
canvas.drawLine(beginx,beginy ,endx,endy, p);
Log.e("matej",beginx+"endy"+beginy+"endx"+endx+"endy"+endy);
}
//canvas.drawLine(0, 181, xtest, ytest, p);
//canvas.drawPath(path, p);
这段代码绘制不好从一点画出但我不知道为什么:
paintComponent(canvas);
p=new Paint();
p.setColor(Color.RED);
Path path1=new Path();
path1.moveTo(pointA.get(0).x, pointA.get(0).y);
for(int i=1;i<pointA.size();i=i+2){
int beginx=pointA.get(i-1).x, beginy=pointA.get(i-1).y,endx= pointA.get(i).x,endy= pointA.get(i).y;
path1.moveTo(pointA.get(i-1).x,pointA.get(i-1).y);
path1.lineTo(pointA.get(i).x, pointA.get(i).y);
Log.e("matej","beginx "+beginx+"beginy "+beginy+"endx "+endx+"endy "+endy);
最后我想知道我在第二段代码中失败了什么,我想知道哪些代码更快:) tnx
答案 0 :(得分:0)
你声明了很多int值(beginx,beginy等)并且实际上并没有使用它们,我建议使用它们或者为了清楚起见删除它们。
你也在跳过一些观点,IE
i = 1:
moveTo(0, 0)
lineTo(1, 1)
i = 3:
moveTo(2, 2)
lineTo(3, 3)
因此(1,1)和(2,2)之间没有划线
你也永远不会调用canvas.drawPath()所以我不完全确定在第二个例子中如何将任何内容绘制到屏幕上。