Grundlegendes zum Android Canvas Clipping

Ich habe Probleme, eine Antwort darauf zu finden. Betrachten Sie den folgenden Beschneidungscode:

           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");
       }

Wenn die Clip-Grenzen zurückgegeben werden, stimmen sie nicht mit den gerade festgelegten überein. Wenn beispielsweise clip_left, clip_top, clip_right, clip_bottom (100, 50, 109, 59) sind, würde ich erwarten, dass die Beschneidungsgrenzen bei dem obigen Code (100, 50, 110, 60) sind. Ist es nicht. getClipBounds () gibt (100, 51, 110, 60) zurück.

Warum ist top = 51, wenn ich gerade 50 eingestellt habe? Es gibt etwas unter der Haube, das ich noch nicht verstehe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage