Почему при выполнении следующего кода перерисовывается весь canvas а не Rect, который указан?
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(rect != null) {
canvas.drawRect(rect, paint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
float posX = event.getX();
float posY = event.getY();
int size = 50;
int x = (int) Math.floor(posX / size) * size;
int y = (int) Math.floor(posY / size) * size;
rect = new Rect(x, y, x + size, y + size);
invalidate(rect);
break;
}
return true;
}