RectUtilspublic class RectUtils extends Object
Methods Summary |
---|
public static void | rotateRect(int degrees, int px, int py, android.graphics.Rect rect)
final RectF rectF = new RectF(rect);
final Matrix matrix = new Matrix();
matrix.setRotate(degrees, px, py);
matrix.mapRect(rectF);
rect.set((int) rectF.left, (int) rectF.top, (int) rectF.right, (int) rectF.bottom);
| public static void | rotateRectForOrientation(int orientation, android.graphics.Rect fullRect, android.graphics.Rect partialRect)Transform the upright full rectangle so that it bounds the original rotated image,
given by the orientation. Transform the upright partial rectangle such that it would apply
to the same region of the transformed full rectangle.
The top-left of the transformed full rectangle will always be placed at (0, 0).
final Matrix matrix = new Matrix();
// Exif orientation specifies how the camera is rotated relative to the actual subject.
// First rotate in the opposite direction.
matrix.setRotate(-orientation);
final RectF fullRectF = new RectF(fullRect);
final RectF partialRectF = new RectF(partialRect);
matrix.mapRect(fullRectF);
matrix.mapRect(partialRectF);
// Then translate so that the upper left corner of the rotated full rect is at (0,0).
matrix.reset();
matrix.setTranslate(-fullRectF.left, -fullRectF.top);
matrix.mapRect(fullRectF);
matrix.mapRect(partialRectF);
// Orientation transformation is complete.
fullRect.set((int) fullRectF.left, (int) fullRectF.top, (int) fullRectF.right,
(int) fullRectF.bottom);
partialRect.set((int) partialRectF.left, (int) partialRectF.top, (int) partialRectF.right,
(int) partialRectF.bottom);
|
|