如何在onDraw()中使用canvas.path()来设置起始点?

4

我正在制作一个类似于Drive axle的应用程序,用于自动裁剪所选路径()上的图像,使用画笔(),然后我制作了这个屏幕。

Change Images

但我的问题是,我的起点从0位置的TOP_LEFT_CORNER X和Y轴开始。
使用这些x和y坐标,我制作了这种类型的矩形,但我需要使用这些坐标来获得此类型的输出。
{"TOP_LEFT_X_AXIS":"43", "TOP_LEFT_Y_AXIS":"278", "TOP_RIGHT_X_AXIS":"532", "TOP_RIGHT_Y_AXIS":"300", "BOTTOM_RIGHT_X_AXIS":"510", "BOTTOM_RIGHT_Y_AXIS":"614", "BOTTOM_LEFT_X_AXIS":"45", "BOTTOM_LEFT_Y_AXIS":"597"}
需要这种类型的输出,请参见此图像。

Change images

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    path = new Path();

    path.lineTo(x1, y1);
    path.lineTo(x2, y2);
    path.lineTo(x3, y3);
    path.lineTo(x4, y4);
    canvas.drawPath(path, currentPaint);

}

编辑:1-1-2014

现在我已经成功地制作了矩形,现在我想裁剪图像的那一部分并将其设置到另一个图像视图中。你有什么想法吗?

编辑:1-07-2014

现在我想在角落处画一个圆圈,请告诉我你是否有任何想法。

Output


你尝试过使用*drawRect(...)*来绘制矩形吗?顺便问一下,你是如何获取坐标的?你有添加触摸监听器吗? - Kumiho
@Kumiho,请查看我的线条绘制代码。 - Roadies
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/44048/discussion-between-roadies-and-kumiho - Roadies
@Kumiho 有没有关于裁剪图像的想法? - Roadies
将你的问题分开来怎么样?第一个问题已经被正确回答了。然后你编辑了它,问了另一个问题,也被正确回答了。据我所知,不可能为同一问题接受两个答案,而且我认为在问题得到正确回答后编辑帖子并添加新问题是一种不好的做法。 - Kumiho
显示剩余8条评论
2个回答

4
请尝试这个方法,希望能对您有用。
canvas.drawPath(path, currentPaint);
canvas.drawCircle(x1, y1, 8, currentPaint);
canvas.drawCircle(x2, y2, 8, currentPaint);
canvas.drawCircle(x3, y3, 8, currentPaint);
canvas.drawCircle(x4, y4, 8, currentPaint);

使用这段代码可以得到以下输出... Output

2

试试这个:

@Override
protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   path = new Path();

   path.moveTo(x1, y1);        // this should set the start point right

   //path.lineTo(x1, y1);    <-- this line should be drawn at the end of course,sorry
   path.lineTo(x2, y2);
   path.lineTo(x3, y3);
   path.lineTo(x4, y4);
   path.lineTo(x1, y1); 
   canvas.drawPath(path, currentPaint);

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接