Android, как вызвать недействительным (Rect) - PullRequest
0 голосов
/ 17 августа 2011

Я создаю класс, расширяющий LinerLayout, и добавляю много элементов в представление, а также добавляю круг с помощью etc canvas.drawCircle (100, 100, 10), и когда я реализую onTouchEvent, я не уверен, как перерисовать только этот элемент (круг),какие параметры нужно установить в "Rect", чтобы я мог отправить его для аннулирования (Rect).

Спасибо.

1 Ответ

2 голосов
/ 17 августа 2011

Для конкретного примера, я думаю, этот пример кода делает то, что вы хотите.Я переместил ваши координаты в переменные (cx, cy, r), чтобы прояснить ситуацию.Исходя из того, что вы упомянули, я думаю, вы бы назвали это из своего подкласса LinearLayout.

    int cx = 100;
    int cy = 100;
    int r = 10;

    canvas.DrawCircle( cx, cy, r );

    int l = cx - r - 1;
    int t = cy - r - 1;
    int r = cx + r + 1;
    int b = cy + r + 1;

    Rect bounds = new Rect(l, t, r, b);
    invalidate(bounds);

Я добавил дополнительный пиксель со всех сторон, чтобы немного перекрыть круг, чтобы гарантировать, что вся область недействительна.Исходя из моего опыта, похоже, что вы можете включить отрицательные значения или значения, которые превышают размеры холста.

...