瀏覽代碼

初步集成

詹子聪 5 年之前
父節點
當前提交
670a1c4de9

+ 4 - 0
app/src/main/AndroidManifest.xml

@@ -49,6 +49,10 @@
             android:name=".ui.OperationActivity"
             android:screenOrientation="portrait" />
 
+        <activity
+            android:name=".ui.camera.wechat.WechatCameraActivity"
+            android:screenOrientation="portrait" />
+
         <activity
             android:name=".ui.camera.google.GoogleCameraActivity"
             android:screenOrientation="portrait"

+ 2 - 2
app/src/main/java/com/miekir/ocr/PermissionActivity.java

@@ -10,7 +10,7 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
 
-import com.miekir.ocr.ui.camera.google.GoogleCameraActivity;
+import com.miekir.ocr.ui.camera.wechat.WechatCameraActivity;
 import com.tbruyelle.rxpermissions2.RxPermissions;
 
 
@@ -36,7 +36,7 @@ public class PermissionActivity extends AppCompatActivity {
                         //startActivity(new Intent(PermissionActivity.this, CropImageActivity.class));
 
                         //startActivity(new Intent(PermissionActivity.this, OperationActivity.class));
-                        startActivity(new Intent(PermissionActivity.this, GoogleCameraActivity.class));
+                        startActivity(new Intent(PermissionActivity.this, WechatCameraActivity.class));
                         finish();
                         //photoSelect();
                     } else {

+ 126 - 0
app/src/main/java/com/miekir/ocr/ui/camera/wechat/WechatCameraActivity.java

@@ -0,0 +1,126 @@
+package com.miekir.ocr.ui.camera.wechat;
+
+
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.graphics.Bitmap;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Environment;
+import android.util.Log;
+import android.view.View;
+import android.view.WindowManager;
+import android.widget.Toast;
+
+import com.cjt2325.cameralibrary.JCameraView;
+import com.cjt2325.cameralibrary.listener.ErrorListener;
+import com.cjt2325.cameralibrary.listener.JCameraListener;
+import com.cjt2325.cameralibrary.util.FileUtil;
+import com.miekir.ocr.R;
+import com.miekir.ocr.base.BaseCameraActivity;
+
+import java.io.File;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/10/27 15:35
+ * Description:
+ */
+public class WechatCameraActivity extends BaseCameraActivity {
+    private JCameraView jCameraView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public int getLayoutID() {
+        return R.layout.activity_wechat_camera;
+    }
+
+    @Override
+    public void initViews(Bundle savedInstanceState) {
+        jCameraView = (JCameraView) findViewById(R.id.jcameraview);
+        //设置视频保存路径
+        jCameraView.setSaveVideoPath(Environment.getExternalStorageDirectory().getPath() + File.separator + "JCamera");
+        jCameraView.setFeatures(JCameraView.BUTTON_STATE_BOTH);
+        jCameraView.setTip("JCameraView Tip");
+        jCameraView.setMediaQuality(JCameraView.MEDIA_QUALITY_MIDDLE);
+        jCameraView.setErrorLisenter(new ErrorListener() {
+            @Override
+            public void onError() {
+                //错误监听
+                Log.i("CJT", "camera error");
+                Intent intent = new Intent();
+                setResult(103, intent);
+                finish();
+            }
+
+            @Override
+            public void AudioPermissionError() {
+                Toast.makeText(WechatCameraActivity.this, getString(R.string.permission_msg), Toast.LENGTH_SHORT).show();
+            }
+        });
+        //JCameraView监听
+        jCameraView.setJCameraLisenter(new JCameraListener() {
+            @Override
+            public void captureSuccess(Bitmap bitmap) {
+                //获取图片bitmap
+//                Log.i("JCameraView", "bitmap = " + bitmap.getWidth());
+                String path = FileUtil.saveBitmap("JCamera", bitmap);
+                Intent intent = new Intent();
+                intent.putExtra("path", path);
+                setResult(101, intent);
+                finish();
+            }
+
+            @Override
+            public void recordSuccess(String url, Bitmap firstFrame) {
+                //获取视频路径
+                String path = FileUtil.saveBitmap("JCamera", firstFrame);
+                Log.i("CJT", "url = " + url + ", Bitmap = " + path);
+                Intent intent = new Intent();
+                intent.putExtra("path", path);
+                setResult(101, intent);
+                finish();
+            }
+        });
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        //全屏显示
+        if (Build.VERSION.SDK_INT >= 19) {
+            View decorView = getWindow().getDecorView();
+            decorView.setSystemUiVisibility(
+                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                            | View.SYSTEM_UI_FLAG_FULLSCREEN
+                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
+        } else {
+            View decorView = getWindow().getDecorView();
+            int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
+            decorView.setSystemUiVisibility(option);
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        jCameraView.onResume();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        jCameraView.onPause();
+    }
+}

+ 210 - 0
app/src/main/res/layout/activity_wechat_camera.xml

@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/activity_main"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:keepScreenOn="true">
+    <!--屏幕常亮-->
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/colorPrimary"
+        android:gravity="center_vertical"
+        android:minHeight="64dp"
+        android:orientation="horizontal"
+        android:paddingStart="@dimen/margin_default"
+        android:paddingTop="@dimen/margin_ss"
+        android:paddingEnd="@dimen/margin_default"
+        android:paddingBottom="@dimen/margin_ss">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@mipmap/logo" />
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:text="@string/app_name"
+            android:textColor="@color/white"
+            android:textSize="18sp"
+            android:visibility="invisible"/>
+
+        <ImageView
+            android:id="@+id/iv_flash"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@mipmap/flash_close"/>
+    </LinearLayout>
+
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <com.cjt2325.cameralibrary.JCameraView
+            android:id="@+id/jcameraview"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            app:duration_max="10000" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <FrameLayout
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:layout_weight="370">
+                <!--灰色遮罩-->
+                <com.miekir.ocr.widget.CropView
+                    android:id="@+id/pcv_scan"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"/>
+
+                <com.miekir.ocr.widget.ScalableImageView
+                    android:id="@+id/iv_animation"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:visibility="invisible"
+                    android:scaleType="fitXY"/>
+            </FrameLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="0.8dp"
+                android:background="@color/white"/>
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="180"
+                android:orientation="vertical"
+                android:background="@color/black_transparent">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal">
+
+                    <Space
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1" />
+
+                    <com.miekir.ocr.widget.IndicatorText
+                        android:id="@+id/it_postal"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        app:text="@string/postal_code" />
+
+                    <Space
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1" />
+
+                    <com.miekir.ocr.widget.IndicatorText
+                        android:id="@+id/it_address"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        app:text="@string/address"/>
+
+                    <Space
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1" />
+
+                    <com.miekir.ocr.widget.IndicatorText
+                        android:id="@+id/it_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        app:text="@string/name"/>
+
+                    <Space
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1" />
+
+                    <com.miekir.ocr.widget.IndicatorText
+                        android:id="@+id/it_all"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        app:text="@string/full"
+                        app:focused="true"/>
+
+                    <Space
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1" />
+                </LinearLayout>
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:paddingBottom="@dimen/margin_default">
+
+                    <RelativeLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1">
+
+                        <FrameLayout
+                            android:id="@+id/fl_album"
+                            android:foreground="@drawable/ripple_effect"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_centerInParent="true"
+                            android:padding="@dimen/margin_default">
+                            <ImageView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:src="@mipmap/button_album"/>
+                        </FrameLayout>
+
+                    </RelativeLayout>
+
+                    <FrameLayout
+                        android:id="@+id/fl_take"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:foreground="@drawable/ripple_effect">
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:src="@mipmap/button_take" />
+
+                        <ImageView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:src="@mipmap/button_take_out" />
+                    </FrameLayout>
+
+                    <TextView
+                        android:id="@+id/tv_orientation"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/margin_default"
+                        android:layout_marginEnd="@dimen/margin_default"
+                        android:layout_weight="1"
+                        android:gravity="center"
+                        android:text="@string/landscape"
+                        android:textColor="@color/colorPrimary"
+                        android:textSize="@dimen/size_text_title_p"/>
+                </LinearLayout>
+            </LinearLayout>
+        </LinearLayout>
+    </FrameLayout>
+</LinearLayout>

+ 0 - 13
camera/src/androidTest/java/com/cjt2325/cameralibrary/ApplicationTest.java

@@ -1,13 +0,0 @@
-package com.cjt2325.cameralibrary;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
- */
-public class ApplicationTest extends ApplicationTestCase<Application> {
-    public ApplicationTest() {
-        super(Application.class);
-    }
-}