반응형
점과 점을 잇는 형태의 드래그 드롭으로 선을 그리는 기능이 필요해서 대충 만들었습니다
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를 전역으로 선언해서 새로 그을 때마다 기존 뷰를 지우고 새로 그려주면 됩니다..
어디서 보고 비슷하게 만든건데 출처가 어디였는지 기억이 안나는데 아무튼 감사합니다.
복받으실거에요...
반응형