BlurMaskFilter blur = new BlurMaskFilter( 20, BlurMaskFilter.Blur.OUTER);
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true); // 디더링 효과, 없으면 빠르지만 정확도 낮아짐
mPaint.setStrokeWidth(curWidth);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.BEVEL);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setMaskFilter(blur); //효과주기
mPaint.setShader(new LinearGradient(0,1000,0,1000,
curColor,curColor2,TileMode.REPEAT));
위와 같이 선에 효과를 주고 초록선으로 칠하면 그 주위에 번짐효과처럼 나오게 효과를 줬는데
다른 선을 그리기 시작하면 겉에 번짐효과는 남아잇는데 선은 없어지네요 ㅠㅠ
private void touch_start(float x, float y) {
mPath.reset();//문제인 부분 !!!이곳을 지우면 선과 번짐효과가 남는데
색상 변경시 전에 칠한것도 바뀌고
전에 그린 선도 새로운선 그릴때마다 다시 칠해져서 색이
진해지네요.....
switch (curMode) {
case PENMODE:
mPath.moveTo(x, y);
mX = x;
mY = y;
break;
case RECTMODE:
case CIRCLEMODE:
break;
}
}
// Dragging...
private void touch_move(float x, float y) {
switch (curMode) {
case PENMODE:
mPath.lineTo(x, y);
mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
mX = x;
mY = y;
case RECTMODE:
case CIRCLEMODE:
break;
}
}
// Drag Finish
private void touch_up(float x, float y) {
switch (curMode) {
case PENMODE:
mPath.lineTo(mX, mY);
break;
case RECTMODE:
mPath.addRect(startX, startY, stopX, stopY, Direction.CW);
break;
case CIRCLEMODE:
mPath.addCircle(startX, startY, (float) Math.sqrt((Math.pow(
Math.abs(stopX - startX), 2) + Math.pow(
Math.abs(stopY - startY), 2))), Direction.CW);
break;
}
mCanvas.drawPath(mPath, mPaint);
}