У меня возникли проблемы с поиском ответа на этот вопрос. Рассмотрим приведенный ниже код отсечения:Понимание обложки холста Android
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? Что-то под капотом я пока не понимаю.
К сожалению, я должен отметить, что это под Android 4. – Batdude