Quellcode durchsuchen

可以拍多张了

詹子聪 vor 5 Jahren
Ursprung
Commit
d0d1328e79

+ 4 - 3
app/src/main/java/com/miekir/ocr/ui/OperationPresenter.java

@@ -326,7 +326,7 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
         });
     }
 
-    public void startOcrFromBitmap(Context context, Bitmap originalBmp, int[] rectData, File file, String scene, boolean isScreenLandscape) {
+    public void startOcrFromBitmap(Context context, Bitmap normalBitmap, int[] rectData, File file, String scene, boolean isScreenLandscape) {
         getView().showLoading(context.getResources().getString(R.string.loading));
         int mLeft = rectData[0];
         int mTop = rectData[1];
@@ -336,7 +336,7 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
             @Override
             public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                 // 所以要先恢复原来的图片再裁剪
-                Bitmap normalBitmap = ImageUtil.rotateBitmap90(originalBmp);
+                //Bitmap normalBitmap = ImageUtil.rotateBitmap90(originalBmp);
                 int normalWidth = normalBitmap.getWidth();
                 int normalHeight = normalBitmap.getHeight();
 
@@ -413,7 +413,8 @@ public class OperationPresenter extends BasePresenter<IOperationView> {
                 // 压缩图片
                 boolean saveCropSuccess = ImageUtil.saveBitmapFile(rotatedBitmap, file, multi);
 
-                originalBmp.recycle();
+                //originalBmp.recycle();
+                normalBitmap.recycle();
                 croppedBmp.recycle();
                 rotatedBitmap.recycle();
                 if (saveCropSuccess) {

+ 14 - 5
camera/src/main/java/com/cjt2325/cameralibrary/JCameraView.java

@@ -147,6 +147,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
         machine = new CameraMachine(getContext(), this, this);
     }
 
+    private TypeListener typeListener;
     private void initView() {
         setWillNotDraw(false);
         View view = LayoutInflater.from(mContext).inflate(R.layout.camera_view, this);
@@ -160,8 +161,9 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
             @Override
             public void onClick(View v) {
                 type_flash++;
-                if (type_flash > 0x023)
+                if (type_flash > 0x023) {
                     type_flash = TYPE_FLASH_AUTO;
+                }
                 setFlashRes();
             }
         });
@@ -225,7 +227,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
             }
         });
         //确认 取消
-        mCaptureLayout.setTypeLisenter(new TypeListener() {
+        typeListener = new TypeListener() {
             @Override
             public void cancel() {
                 machine.cancle(mVideoView.getHolder(), screenProp);
@@ -235,7 +237,8 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
             public void confirm() {
                 machine.confirm();
             }
-        });
+        };
+        mCaptureLayout.setTypeLisenter(typeListener);
         //退出
 //        mCaptureLayout.setReturnLisenter(new ReturnListener() {
 //            @Override
@@ -263,6 +266,11 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
         });
     }
 
+    @Override
+    public TypeListener getTypeListener() {
+        return typeListener;
+    }
+
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -466,6 +474,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
                 if (jCameraLisenter != null) {
                     jCameraLisenter.captureSuccess(captureBitmap);
                 }
+                machine.setState(machine.getBorrowPictureState());
                 break;
             case TYPE_SHORT:
                 break;
@@ -488,8 +497,8 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp
         captureBitmap = bitmap;
         //mPhoto.setImageBitmap(bitmap);
         //mPhoto.setVisibility(VISIBLE);
-//        mCaptureLayout.startAlphaAnimation();
-//        mCaptureLayout.startTypeBtnAnimator();
+        //mCaptureLayout.startAlphaAnimation();
+        //mCaptureLayout.startTypeBtnAnimator();
     }
 
     @Override

+ 1 - 1
camera/src/main/java/com/cjt2325/cameralibrary/state/CameraMachine.java

@@ -52,7 +52,7 @@ public class CameraMachine implements State {
     }
 
     //获取浏览图片状态
-    State getBorrowPictureState() {
+    public State getBorrowPictureState() {
         return borrowPictureState;
     }
 

+ 6 - 2
camera/src/main/java/com/cjt2325/cameralibrary/state/PreviewState.java

@@ -6,6 +6,7 @@ import android.view.SurfaceHolder;
 
 import com.cjt2325.cameralibrary.CameraInterface;
 import com.cjt2325.cameralibrary.JCameraView;
+import com.cjt2325.cameralibrary.listener.TypeListener;
 import com.cjt2325.cameralibrary.util.LogUtil;
 
 /**
@@ -62,8 +63,11 @@ class PreviewState implements State {
                 //BitmapManager.getInstance().setBitmap(bitmap);
                 machine.getView().showPicture(bitmap, isVertical);
                 machine.getView().confirmState(JCameraView.TYPE_PICTURE);
-                machine.setState(machine.getPreviewState());
-                //machine.setState(machine.getBorrowPictureState());
+
+                TypeListener typeListener = machine.getView().getTypeListener();
+                if (typeListener != null) {
+                    typeListener.cancel();
+                }
                 LogUtil.i("capture");
             }
         });

+ 4 - 0
camera/src/main/java/com/cjt2325/cameralibrary/view/CameraView.java

@@ -2,6 +2,8 @@ package com.cjt2325.cameralibrary.view;
 
 import android.graphics.Bitmap;
 
+import com.cjt2325.cameralibrary.listener.TypeListener;
+
 /**
  * =====================================
  * 作    者: 陈嘉桐
@@ -13,6 +15,8 @@ import android.graphics.Bitmap;
 public interface CameraView {
     void resetState(int type);
 
+    TypeListener getTypeListener();
+
     void confirmState(int type);
 
     void showPicture(Bitmap bitmap, boolean isVertical);