Jelajahi Sumber

人脸画面测试

chenp 2 tahun lalu
induk
melakukan
1852bfdd32

+ 26 - 0
clothCashier/app/src/main/java/com/cloth/clothcashier/ui/activity/FaceActivity.java

@@ -0,0 +1,26 @@
+package com.cloth.clothcashier.ui.activity;
+
+import com.cloth.clothcashier.R;
+import com.cloth.clothcashier.base.BaseActivity;
+
+public class FaceActivity extends BaseActivity {
+    @Override
+    protected int getLayoutResId() {
+        return R.layout.activity_face;
+    }
+
+    @Override
+    protected void initViewModel() {
+
+    }
+
+    @Override
+    protected void bindViewModel() {
+
+    }
+
+    @Override
+    protected void init() {
+
+    }
+}

+ 38 - 10
clothCashier/app/src/main/java/com/cloth/clothcashier/ui/activity/OrderCashierActivity.java

@@ -142,6 +142,7 @@ public class OrderCashierActivity extends BaseActivity implements CameraListener
 
     private PopDialog payWayDialog;
     private PopDialog payStatusDialog;
+    private PopDialog faceDialog;
     private NfcAdapter nfcAdapter;
     private PendingIntent pi;
     public static final byte[] KEY =
@@ -546,16 +547,16 @@ public class OrderCashierActivity extends BaseActivity implements CameraListener
             Logger.i("识别中");
 //            orderCshierViewModel.setFaceStatus(false);
             List<FacePreviewInfo> facePreviewInfoList = orderCshierViewModel.onPreviewFrame(data, true);
-//            if (facePreviewInfoList == null || facePreviewInfoList.size() == 0) {
-//                Logger.i("没有人脸");
-//                orderCshierViewModel.setFaceStatus(true);
-//            } else {
-//                Logger.i("有人脸");
-//            }
+            if (facePreviewInfoList == null || facePreviewInfoList.size() == 0) {
+                Logger.i("没有人脸");
+                orderCshierViewModel.setFaceStatus(true);
+            } else {
+                Logger.i("有人脸");
+                if (rgbFaceRectTransformer != null) {
+                    drawPreviewInfo(facePreviewInfoList);
+                }
+            }
         }
-//        if (facePreviewInfoList != null && rgbFaceRectTransformer != null) {
-////            drawPreviewInfo(facePreviewInfoList);
-////        }
     }
 
     @Override
@@ -969,7 +970,13 @@ public class OrderCashierActivity extends BaseActivity implements CameraListener
                 break;
             case R.id.linear_face:
                 payWayDialog.dismissPop();
-                showLoadingDialog(getResources().getString(R.string.order_paying));
+//                showLoadingDialog(getResources().getString(R.string.order_paying));
+                try {
+                    Thread.sleep(2000);
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+                createFaceDialog();
                 orderCshierViewModel.setFaceStatus(true);
                 break;
             case R.id.linear_card:
@@ -986,4 +993,25 @@ public class OrderCashierActivity extends BaseActivity implements CameraListener
         super.disssLoading();
         orderCshierViewModel.restoreDefault();
     }
+
+    private void createFaceDialog() {
+        if (faceDialog == null) {
+            faceDialog = new PopDialog(DialogUtils.createFaceDialog(this));
+            faceDialog.setCancelEnable(true);
+            ViewGroup.LayoutParams layoutParams = faceDialog.getView(R.id.face_liner).getLayoutParams();
+            Logger.i(layoutParams.height + "=阿达" + layoutParams.width);
+            layoutParams.height = DisplayUtil.dip2px(this, DeviceHelper.getScreenHeight(this) / 2);
+            layoutParams.width = DisplayUtil.dip2px(this, DeviceHelper.getScreenWidth(this) / 2);
+            faceDialog.getView(R.id.face_liner).setLayoutParams(layoutParams);
+        }
+
+        faceDialog.setOnDismissListener(() -> {
+            orderCshierViewModel.restoreDefault();
+            if (faceDialog != null) {
+                faceDialog.dismissPop();
+            }
+        });
+        faceDialog.showPop();
+    }
+
 }

+ 4 - 0
clothCashier/app/src/main/java/com/cloth/clothcashier/util/DialogUtils.java

@@ -63,6 +63,10 @@ public class DialogUtils {
         return view;
     }
 
+    public static View createFaceDialog(Context context){
+        return LayoutInflater.from(context).inflate(R.layout.fragment_face_dialog, null);
+    }
+
     public void dismissPop() {
         if (popupWindow.isShowing()) {
             popupWindow.dismiss();

+ 1 - 1
clothCashier/app/src/main/java/com/cloth/clothcashier/widget/face/FaceRectView.java

@@ -211,7 +211,7 @@ public class FaceRectView extends View {
      * @param faceRectThickness 人脸框厚度
      * @param paint             画笔
      */
-    private static void drawFaceRect(Canvas canvas, FaceRectView.DrawInfo drawInfo, int faceRectThickness, Paint paint) {
+        private static void drawFaceRect(Canvas canvas, FaceRectView.DrawInfo drawInfo, int faceRectThickness, Paint paint) {
         if (canvas == null || drawInfo == null) {
             return;
         }

+ 29 - 0
clothCashier/app/src/main/res/layout/activity_face.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <FrameLayout
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="start"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <TextureView
+            android:id="@+id/dual_camera_texture_preview_rgb"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <com.cloth.clothcashier.widget.face.FaceRectView
+            android:id="@+id/dual_camera_face_rect_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/cardview_shadow_end_color" />
+
+
+    </FrameLayout>
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 61 - 0
clothCashier/app/src/main/res/layout/fragment_face_dialog.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#00000000">
+
+<!--    <FrameLayout-->
+<!--        android:id="@+id/face_liner"-->
+<!--        android:layout_width="wrap_content"-->
+<!--        android:layout_height="match_parent"-->
+<!--        android:layout_gravity="start"-->
+<!--        android:visibility="invisible">-->
+
+<!--        <TextureView-->
+<!--            android:id="@+id/dual_camera_texture_preview_rgb"-->
+<!--            android:layout_width="match_parent"-->
+<!--            android:layout_height="match_parent" />-->
+
+<!--        <com.cloth.clothcashier.widget.face.FaceRectView-->
+<!--            android:id="@+id/dual_camera_face_rect_view"-->
+<!--            android:layout_width="match_parent"-->
+<!--            android:layout_height="match_parent"-->
+<!--            android:background="@color/cardview_shadow_end_color" />-->
+<!--    </FrameLayout>-->
+
+    <RelativeLayout
+        android:id="@+id/face_liner"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_centerInParent="true"
+        android:background="@drawable/pay_background">
+
+        <ImageView
+            android:id="@+id/iv_pay_failed"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:src="@mipmap/pay_failed"></ImageView>
+
+        <TextView
+            android:id="@+id/tv_pay_status"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/iv_pay_failed"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="10dp"
+            android:text="支付失败"
+            android:textColor="@color/color_08192B"
+            android:textSize="24dp"></TextView>
+
+        <TextView
+            android:id="@+id/tv_pay_reason"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/tv_pay_status"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="10dp"
+            android:text="余额不足"
+            android:textColor="#898A8B"></TextView>
+    </RelativeLayout>
+</RelativeLayout>