@Override
    protected void onDraw(Canvas canvas) {
        Log.d(TAG, "===== OnDraw===="+ check);
        this.canvas = canvas;
        if(!check)
        {
            canvas.drawRect(rectBG, paintBG);
            canvas.drawRect(rectFG, paintFG);
            canvas.drawText("Delete All", rect.left+((rect.right-rect.left)/4), rect.top-v.getHeight()-15, paint);
            check=!check;
        }
        else if(check)
        {
            canvas.
            rectBG.set(0, 0, 100, 100);
            canvas.drawRect(rectBG, paintFG);
            canvas.drawLine(0, 0, 100, 100, paint);
        }
           
           
        super.onDraw(canvas);
    }

위와 같이 메소드를 만들고 터치 다운이 되면 if(!check) 터치 업이 되면 else가 실행되도록 구현하였습니다.

로그를 찍어보니깐 if와 else if 두 구문 모두 호출이 되는데...else에서 그림 그림이 갱신이 되질 않내요..

그래서 else에 invalidate를 호출하니깐 원하는 동작은 하는데 무한루프 돌고...

여기서 질문 있습니다.

onDraw()가 호출되면 그림을 다시 그리는 거 아닌가요??

대체 canvas에 새로운 그림을 그렸는데 갱신이 안되는 이유가 뭘까요??

답변 좀 부탁드리겠습니다.