느려요

진짜로

IT/Mobile

[Android/Java] 드래그 드롭으로 선 그리기

느이 2023. 2. 14. 09:23

점과 점을 잇는 형태의 드래그 드롭으로 선을 그리는 기능이 필요해서 대충 만들었습니다

public class DrawLineView extends View {

    Paint paint;
    float fromX, fromY, toX, toY;
    int color;

    public DrawLineView(Context context, float fromX, float fromY, float toX, float toY, int color) {
        super(context);
        this.fromX = fromX;
        this.fromY = fromY;
        this.toX = toX;
        this.toY = toY;
        this.color = color;
        paint = new Paint();
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.ROUND);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeWidth(10.0f);
        paint.setColor(color);

        setBackgroundColor(context.getColor(R.color.color_main_transparent));
    }

    public DrawLineView(Context context) {
        super(context);

    }

    public DrawLineView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public DrawLineView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(fromX, fromY, toX, toY, paint); // 선 그리는 부분
    }
}

 

대충 아래처럼 갖다 쓰면 됩니다.

DrawLineView drawLineView = new DrawLineView(context, fromX, fromY, toX, toY, lineColor);
layout.addView(drawLineView);

 

줄을 하나만 그어야 하면 DrawLineView를 전역으로 선언해서 새로 그을 때마다 기존 뷰를 지우고 새로 그려주면 됩니다..

 

 

어디서 보고 비슷하게 만든건데 출처가 어디였는지 기억이 안나는데 아무튼 감사합니다.

복받으실거에요...

반응형