@Jek_Rock
Java developer

Почему не работает invalidate(rect)?

Почему при выполнении следующего кода перерисовывается весь 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;
    }
  • Вопрос задан
  • 230 просмотров
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
По-моему, надо добавить canvas.clipRect
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы