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

时间:2013-12-28 07:15:08

标签: android image-processing path android-canvas paint

我使用Path ()创建了一个类似自动裁剪的驱动轴的应用Paint (),然后我创建了一个屏幕..

Change Images

但我的问题是我的起点是0位置TOP_LEFT_CORNER X和Y AXIS

使用这个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”,

需要这种类型的Out Put看到这张图片..

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

现在我成功制作矩形现在我想要裁剪那部分图像并在另一个图像上设置任何关于此的想法..

编辑: - 2014年1月1日

现在我想在角落画圆圈告诉我你是否有任何想法..

Output

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);

}