diff --git a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureContextModule.java b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureContextModule.java old mode 100644 new mode 100755 diff --git a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureMainView.java b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureMainView.java old mode 100644 new mode 100755 index 152255ab..26a661a3 --- a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureMainView.java +++ b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureMainView.java @@ -1,5 +1,6 @@ package com.rssignaturecapture; +import android.graphics.Matrix; import android.util.Log; import android.view.ViewGroup; import com.facebook.react.modules.core.DeviceEventManagerModule; @@ -197,8 +198,17 @@ public Bitmap getResizedBitmap(Bitmap image) { height = maxSize; width = (int) (height * bitmapRatio); } - - return Bitmap.createScaledBitmap(image, width, height, true); + Bitmap resizedBitmap = Bitmap.createScaledBitmap(image, width, height, true); + + if (this.signatureView.getRotateClockwise()){ + Matrix matrix = new Matrix(); + // 正数顺时针,负数逆时针 + matrix.postRotate(-90); + Bitmap rotatedBitmap = Bitmap.createBitmap(resizedBitmap, 0, 0, resizedBitmap.getWidth(), resizedBitmap.getHeight(), matrix, true); + return rotatedBitmap; + }else{ + return resizedBitmap; + } } diff --git a/android/src/main/java/com/rssignaturecapture/RSSignatureCapturePackage.java b/android/src/main/java/com/rssignaturecapture/RSSignatureCapturePackage.java old mode 100644 new mode 100755 diff --git a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureView.java b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureView.java old mode 100644 new mode 100755 index 37c1dad3..10e3e75d --- a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureView.java +++ b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureView.java @@ -53,6 +53,7 @@ public class RSSignatureCaptureView extends View { private boolean dragged = false; private boolean multipleTouchDragged = false; private int SCROLL_THRESHOLD = 5; + private boolean rotateClockwise = false; public interface SignatureCallback { void onDragged(); @@ -214,6 +215,16 @@ private float strokeWidth(float velocity) { return Math.max(mMaxWidth / (velocity + 1), mMinWidth); } + public void setRotateClockWise(boolean newRotateClockwise){ + rotateClockwise = newRotateClockwise; + } + + public boolean getRotateClockwise(){ + return rotateClockwise; + } + + + private ControlTimedPoints calculateCurveControlPoints(TimedPoint s1, TimedPoint s2, TimedPoint s3) { float dx1 = s1.x - s2.x; float dy1 = s1.y - s2.y; diff --git a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureViewManager.java b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureViewManager.java old mode 100644 new mode 100755 index 275d51a2..733e8d18 --- a/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureViewManager.java +++ b/android/src/main/java/com/rssignaturecapture/RSSignatureCaptureViewManager.java @@ -26,6 +26,7 @@ public class RSSignatureCaptureViewManager extends ViewGroupManager