1
1
package com .haotran .documentscanner .view ;
2
2
3
+ import android .annotation .SuppressLint ;
3
4
import android .app .Activity ;
4
5
import android .content .Context ;
5
6
import android .graphics .Bitmap ;
19
20
import android .view .MotionEvent ;
20
21
import android .view .SurfaceHolder ;
21
22
import android .view .SurfaceView ;
23
+ import android .view .View ;
22
24
import android .widget .FrameLayout ;
23
25
24
26
import com .haotran .documentscanner .constants .ScanConstants ;
@@ -63,6 +65,7 @@ public class ScanSurfaceView extends FrameLayout implements SurfaceHolder.Callba
63
65
private Camera .Size previewSize ;
64
66
private boolean isCapturing = false ;
65
67
68
+ @ SuppressLint ("ClickableViewAccessibility" )
66
69
public ScanSurfaceView (Context context , IScanner iScanner ) {
67
70
super (context );
68
71
mSurfaceView = new SurfaceView (context );
@@ -73,6 +76,14 @@ public ScanSurfaceView(Context context, IScanner iScanner) {
73
76
SurfaceHolder surfaceHolder = mSurfaceView .getHolder ();
74
77
surfaceHolder .addCallback (this );
75
78
this .iScanner = iScanner ;
79
+
80
+ mSurfaceView .setOnTouchListener (new OnTouchListener () {
81
+ @ Override
82
+ public boolean onTouch (View view , MotionEvent motionEvent ) {
83
+ cameraFocus (motionEvent );
84
+ return true ;
85
+ }
86
+ });
76
87
}
77
88
78
89
@ Override
@@ -259,7 +270,7 @@ public void onPreviewFrame(byte[] data, Camera camera) {
259
270
260
271
// Imgcodecs.imwrite("Gaussian45.jpg", destination);
261
272
262
- SaveImage (mat );
273
+ // SaveImage(mat);
263
274
264
275
yuv .release ();
265
276
@@ -441,6 +452,7 @@ public void onFinish() {
441
452
autoCaptureTimer .start ();
442
453
}
443
454
455
+ @ SuppressLint ("ClickableViewAccessibility" )
444
456
private void autoCapture (ScanHint scanHint ) {
445
457
if (isCapturing ) return ;
446
458
if (ScanHint .CAPTURING_IMAGE .equals (scanHint )) {
@@ -450,8 +462,16 @@ private void autoCapture(ScanHint scanHint) {
450
462
451
463
camera .takePicture (mShutterCallBack , null , pictureCallback );
452
464
camera .setPreviewCallback (null );
465
+
453
466
// iScanner.displayHint(ScanHint.NO_MESSAGE);
454
467
// clearAndInvalidateCanvas();
468
+ mSurfaceView .setOnTouchListener (new OnTouchListener () {
469
+ @ Override
470
+ public boolean onTouch (View view , MotionEvent motionEvent ) {
471
+ //do nothing...
472
+ return true ;
473
+ }
474
+ });
455
475
} catch (Exception e ) {
456
476
e .printStackTrace ();
457
477
}
@@ -625,7 +645,7 @@ public boolean cameraFocus(MotionEvent event) {
625
645
Rect focusRect = calculateTapArea (event .getX (), event .getY (), 1f );
626
646
627
647
Camera .Parameters parameters = camera .getParameters ();
628
- parameters .setFocusMode (Camera .Parameters .FOCUS_MODE_MACRO );
648
+ parameters .setFocusMode (Camera .Parameters .FOCUS_MODE_AUTO );
629
649
630
650
if (parameters .getMaxNumFocusAreas () > 0 ) {
631
651
List <Camera .Area > mylist = new ArrayList <Camera .Area >();
0 commit comments