안녕하세요 :)

Touch기반의 그림판을 구현하고 있는데 질문이 있어 글을 올립니다.


문제는 onTouch의 move 이벤트 받아 drawLine을 사용하여 선을 그릴때 

각각의 선들이 이어지지 않는 문제 인데요.


예를 들어 사용자가 원을 그린다고 했을때 원을 구성하는 직선들간에 연결이 부자연스럽습니다.

line의 width를 작게하면 문제가 없지만 좀 굵게 하면 마치 직사각형들이 연달아 있는것처럼 보이게 됩니다.


drawPoint를 쓰는 방법은 단말의 특성상 부하가 걸릴수 있어 OOM이 두려워 구현할 수 없어

마땅한 방법이 떠오르지 않네요 -_-;;; 도움 부탁드립니다.


현제 paint setting은 다음과 같습니다.

if (mPaint == null)

mPaint = new Paint();

mPaint.setStyle(Paint.Style.STROKE);

setLineColor(mRed, mGreen, mBlue);

setLineWidth(mStrokeWidth);

mPaint.setAntiAlias(true);


라인을 그릴때는 onTouch에서 point받아 list에 저장했다가 onDraw에서 다음과 같이 그립니다.

@Override

public void onDraw(Canvas canvas) {

if (mBitmap != null && !mBitmap.isRecycled() )

canvas.drawBitmap(mBitmap, 0, 0, null);

for (int i = 1; i < mVertexList.size(); i ++) {

if(mVertexList.get(i).isDraw) {

canvas.drawLine(

mVertexList.get(i - 1).x,

mVertexList.get(i - 1).y,

mVertexList.get(i).x,

mVertexList.get(i).y,

mPaint);

}

}

}