Понимание Android Canvas Clipping

Не могу найти ответ на этот вопрос. Рассмотрим код отсечения ниже:

           boolean is_ok = mycanvas.clipRect(clip_left, clip_top, clip_right+1, clip_bottom+1);
       mycanvas.getClipBounds(clipRect);
       if (!is_ok ||
               clipRect.left != clip_left ||
               clipRect.top != clip_top ||
               clipRect.right != clip_right+1 ||
               clipRect.bottom != clip_bottom+1)
       {
           Log.i("DEBUG", "setClipping failed");
       }

Когда границы клипа возвращаются, они не соответствуют тому, что было только что установлено. Например, если clip_left, clip_top, clip_right, clip_bottom равны (100,50,109, 59), то я ожидаю, что границы отсечения будут (100, 50, 110, 60), учитывая приведенный выше код. Это не так. getClipBounds() возвращает (100, 51, 110, 60).

Почему top = 51, когда я просто установил его на 50? Что-то под капотом, чего я пока не понимаю.

5
задан Simon Sarris 8 June 2012 в 03:31
поделиться