0

画像付きのイメージビューがあります。画像 (onTouchEvent) をクリックして、座標 (x,y) を持つポイントを取得し、ポイント間に 1 つずつ線を引きます。

@Override
public boolean onTouchEvent(MotionEvent event) {
    int positionX = (int) event.getRawX();
    int positionY = (int) event.getRawY() - 80;
    switch (event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                // Add current touch position to the list of points
                pointsList.add(new Point(positionX, positionY));
                Log.d(TAG, " positionX: " + positionX + " positionY: " + positionY);

                bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

                Canvas canvas = new Canvas(bitmap);
                Paint paint = new Paint();
                paint.setColor(Color.RED);
                paint.setStrokeWidth(3);

                // Iterate on the list
                for (int i = 0; i < pointsList.size(); i++) {
                    Point current = pointsList.get(i);

                    // Draw points
                    canvas.drawCircle(current.x, current.y, 10, paint);
                    Log.d(TAG, " startCurrentX: " + current.x + " startCurrentY: " + current.y);

                    // Draw line with next point (if it exists)
                    if (i + 1 < pointsList.size()) {
                        Point next = pointsList.get(i + 1);
                        canvas.drawLine(current.x, current.y, next.x, next.y, paint);
                        Log.d(TAG, " currentX: " + current.x + " currentY: " + current.y + " nextX: " + next.x + " nextY: " + next.y);
                    }
                }
            }

            setImageBitmap(bitmap);
            break;
    }
    return true;
}

だから私は多くのポイントを取得し、すべての接続されたポイントの領域で画像領域をカットする必要があります。指定した領域(接続点の領域)の画像の一部が必要です。

ポイントで領域を取得し、イメージビューでこの領域の画像を切り取るにはどうすればよいですか?

4

1 に答える 1