以下のコードを使用して図面をキャプチャしています。ストロークの色や幅を変更するために、setPaintAttribute()メソッドを呼び出しています。でも、色を変えると、前に描いた線も含めて絵全体が変わってしまいます。ペイントの色を変更し、以前の図面をそのままにしておくにはどうすればよいですか? 新しいパスを作成しようとしましたが、以前の描画が消えてしまいました。
public void setPaintAttributes(float STROKE_WIDTH, int color)
    {
        paint=new Paint();
        paint.setAntiAlias(true);
        paint.setColor(color);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.ROUND);
        paint.setStrokeWidth(STROKE_WIDTH);
    }
 public boolean onTouchEvent(MotionEvent event) {
        scrollView.requestDisallowInterceptTouchEvent(true);
        btnSaveSignature.setEnabled(true);
        btnSaveSignature.setBackgroundResource(R.drawable.save);
        float eventX = event.getX();
        float eventY = event.getY();           
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            path.moveTo(eventX, eventY);
            lastTouchX = eventX;
            lastTouchY = eventY;
            return true;
        case MotionEvent.ACTION_MOVE:
        case MotionEvent.ACTION_UP:
            resetDirtyRect(eventX, eventY);
            int historySize = event.getHistorySize();
            for (int i = 0; i < historySize; i++) {
                float historicalX = event.getHistoricalX(i);
                float historicalY = event.getHistoricalY(i);
                path.lineTo(historicalX, historicalY);
            }
            path.lineTo(eventX, eventY);
            break;
        }
        invalidate((int) (dirtyRect.left - HALF_STROKE_WIDTH),
                (int) (dirtyRect.top - HALF_STROKE_WIDTH),
                (int) (dirtyRect.right + HALF_STROKE_WIDTH),
                (int) (dirtyRect.bottom + HALF_STROKE_WIDTH));
        lastTouchX = eventX;
        lastTouchY = eventY;
        return true;
    }
    private void resetDirtyRect(float eventX, float eventY) {
        dirtyRect.left = Math.min(lastTouchX, eventX);
        dirtyRect.right = Math.max(lastTouchX, eventX);
        dirtyRect.top = Math.min(lastTouchY, eventY);
        dirtyRect.bottom = Math.max(lastTouchY, eventY);
    }