Не могу найти ответ на этот вопрос. Рассмотрим код отсечения ниже:
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? Что-то под капотом, чего я пока не понимаю.