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

+ 3 - 3
app/src/main/AndroidManifest.xml

@@ -18,8 +18,8 @@
         android:supportsRtl="true"
         android:theme="@style/AppTheme"
         tools:ignore="GoogleAppIndexingWarning"
-        android:name="com.miekir.OCRApplication">
-        <activity android:name=".MainActivity"
+        android:name=".OCRApplication">
+        <activity android:name=".PermissionActivity"
             android:screenOrientation="portrait">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -27,7 +27,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".CameraActivity"
+        <activity android:name=".ui.CameraActivity"
             android:screenOrientation="portrait"/>
 
         <activity android:name=".view.cropper.CropImageActivity"

+ 1 - 1
app/src/main/java/com/miekir/OCRApplication.java

@@ -1,4 +1,4 @@
-package com.miekir;
+package com.miekir.ocr;
 
 import android.app.Application;
 

+ 5 - 4
app/src/main/java/com/miekir/ocr/MainActivity.java

@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatActivity;
 
+import com.miekir.ocr.ui.CameraActivity;
 import com.tbruyelle.rxpermissions2.RxPermissions;
 
 
@@ -19,12 +20,12 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
  * @date 2020/7/25 20:33
  * Description: 主界面
  */
-public class MainActivity extends AppCompatActivity {
+public class PermissionActivity extends AppCompatActivity {
     @SuppressLint("CheckResult")
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
+        setContentView(R.layout.activity_permission);
 
         final RxPermissions rxPermissions = RxPermissions.getInstance(this);
         rxPermissions
@@ -32,9 +33,9 @@ public class MainActivity extends AppCompatActivity {
                 .subscribe(granted -> {
                     if (granted) {
                         // 打开相机
-                        //startActivity(new Intent(MainActivity.this, CropImageActivity.class));
+                        //startActivity(new Intent(PermissionActivity.this, CropImageActivity.class));
 
-                        startActivity(new Intent(MainActivity.this, CameraActivity.class));
+                        startActivity(new Intent(PermissionActivity.this, CameraActivity.class));
                         finish();
                         //photoSelect();
                     } else {

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

@@ -1,4 +1,4 @@
-package com.miekir.ocr;
+package com.miekir.ocr.ui;
 
 import android.annotation.SuppressLint;
 import android.content.Context;
@@ -36,6 +36,7 @@ import android.widget.Toast;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
+import com.miekir.ocr.R;
 import com.miekir.ocr.base.BaseCameraActivity;
 import com.miekir.ocr.tool.CameraPreviewTool;
 import com.miekir.ocr.view.AutoFitTextureView;
@@ -154,7 +155,7 @@ public class CameraActivity extends BaseCameraActivity implements View.OnClickLi
         textureView.setSurfaceTextureListener(textureListener);
 
         findViewById(R.id.fl_take).setOnClickListener(this);
-        findViewById(R.id.iv_album).setOnClickListener(this);
+        findViewById(R.id.fl_album).setOnClickListener(this);
         CropView pcv_scan = findViewById(R.id.pcv_scan);
         pcv_scan.setLocationListener(this);
     }
@@ -479,7 +480,7 @@ public class CameraActivity extends BaseCameraActivity implements View.OnClickLi
             case R.id.fl_take:
                 takePicture();
                 break;
-            case R.id.iv_album:
+            case R.id.fl_album:
                 Matisse.from(this)
                         .choose(MimeType.ofImage())
                         .countable(true)

+ 24 - 0
app/src/main/res/drawable-v21/ripple_effect.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--按下时的颜色-->
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="@color/black_press">
+    <!--如果应用于background不起作用,就应用于foreground,其中FrameLayout的foreground很低版本就支持了-->
+
+    <!--mask会在用户点击的时候,item的颜色会以mask的颜色为底色,规定了点击波纹的效果区域为item局内区域-->
+    <item android:id="@android:id/mask">
+        <shape android:shape="oval">
+            <!--这个颜色没有显示出来,但是必须有,否则按下没效果,且item的id必须为@android:id/mask-->
+            <solid android:color="@color/black_press"/>
+            <corners android:radius="50dp"/>
+        </shape>
+    </item>
+
+    <item>
+        <!--没有动作时的颜色-->
+        <shape android:shape="oval" >
+            <corners android:radius="50dp"/>
+            <solid android:color="@android:color/transparent"/>
+            <!--<stroke android:color="@color/item_bg" android:width="1px"/>-->
+        </shape>
+    </item>
+</ripple>

+ 7 - 0
app/src/main/res/drawable/ripple_effect.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@color/black_transparent" android:state_pressed="true"/>
+    <item android:drawable="@color/black_transparent" android:state_focused="true"/>
+    <item android:drawable="@android:color/transparent"/>
+    <!--和上面v21包配合使用,主要规定了在什么时候使用什么样的属性,按下时候的颜色,光标聚集时候的颜色-->
+</selector>

+ 11 - 5
app/src/main/res/layout/activity_camera.xml

@@ -200,20 +200,26 @@
                         android:layout_height="wrap_content"
                         android:layout_weight="1">
 
-                        <ImageView
-                            android:id="@+id/iv_album"
+                        <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:src="@mipmap/button_album"
-                            android:background="?selectableItemBackgroundBorderless"/>
+                            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:background="?selectableItemBackgroundBorderless">
+                        android:foreground="@drawable/ripple_effect">
 
                         <ImageView
                             android:layout_width="wrap_content"

app/src/main/res/layout/activity_main.xml → app/src/main/res/layout/activity_permission.xml


+ 1 - 0
app/src/main/res/values/colors.xml

@@ -5,5 +5,6 @@
     <color name="colorAccent">#D81B60</color>
     <color name="white">#FFFFFF</color>
     <color name="black_transparent">#77000000</color>
+    <color name="black_press">#E6000000</color>
 
 </resources>