詹子聪 5 лет назад
Родитель
Сommit
e553197480

+ 2 - 0
app/src/main/java/com/miekir/ocr/ui/OperationActivity.java

@@ -17,6 +17,7 @@ import com.miekir.mvp.presenter.InjectPresenter;
 import com.miekir.ocr.R;
 import com.miekir.ocr.bean.OcrResult;
 import com.miekir.ocr.constant.ConstantString;
+import com.miekir.ocr.tool.AnimateManager;
 import com.miekir.ocr.tool.SystemTool;
 import com.miekir.ocr.widget.CropView;
 import com.miekir.ocr.widget.GlideV4ImageEngine;
@@ -115,6 +116,7 @@ public class OperationActivity extends CameraActivity implements CropView.onLoca
 
                 if (tv_orientation.getVisibility() == View.VISIBLE) {
                     // 切换横竖屏
+                    AnimateManager.getInstance().stopAnimation();
                     pcv_scan.switchOrientation();
                 }
                 break;

+ 13 - 2
app/src/main/java/com/miekir/ocr/widget/CropView.java

@@ -9,6 +9,7 @@ import android.graphics.Paint;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffXfermode;
 import android.graphics.RectF;
+import android.os.Handler;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
 import android.util.TypedValue;
@@ -96,6 +97,7 @@ public class CropView extends View {
      * 设置扫描区域
      */
     public void setScanArea(int scanType) {
+        AnimateManager.getInstance().stopAnimation();
         switch (scanType) {
             case SCAN_TYPE_POSTAL:
                 // 邮箱
@@ -188,6 +190,17 @@ public class CropView extends View {
         // invalidate()重绘树,主线程使用,不会触发onMeasure()方法(控制大小用)。
         // 如果是View就重绘View,如果是ViewGroup就全部重绘。postInvalidate()同,在子线程使用
         // requestLayout()和invalidate()相反,只调用measure()和layout()过程,不会调用draw()
+
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                if (coverWidth > coverHeight) {
+                    AnimateManager.getInstance().setWidth(coverWidth, coverHeight, sX, sY, eX, eY);
+                } else {
+                    AnimateManager.getInstance().setHeight(coverWidth, coverHeight, sX, sY, eX, eY);
+                }
+            }
+        }, 800);
     }
 
     /*生成bitmap*/
@@ -334,8 +347,6 @@ public class CropView extends View {
                 AnimateManager.getInstance().stopAnimation();
                 if (changeLocationlistener != null) {
                     changeLocationlistener.locationChange("change self");
-                } else {
-                    changeLocationlistener = null;
                 }
 
                 memonyX = (int) event.getX();