これに対する答えを見つけるのに苦労しています。以下のクリッピング コードを検討してください。
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) を返します。
50 に設定したのになぜ top = 51 なのですか? 私がまだ理解していないボンネットの下に何かがあります。