@Override public void onCameraPreviewStarted() { if (mActivityState == ActivityState.RESUMED) { enableTorchButtonIfPossible(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.detector_activity); mActivityState = ActivityState.CREATED; mRecognizerView = findViewById(R.id.rec_view); Intent intent = getIntent(); Bundle extras = intent.getExtras(); Toast.makeText(this, "EXTRAS_DETECTOR intent extra not set! Please set " + "detector that you want to to use.", Toast.LENGTH_SHORT).show(); finish(); return; if (v != null) { ViewGroup vg = findViewById(R.id.main_root); vg.addView(v); mResultView = getLayoutInflater().inflate(R.layout.detector_detection_result, null); mResultView.setVisibility(View.INVISIBLE); mImageView = mResultView.findViewById(R.id.imgDewarped); View overlay = getLayoutInflater().inflate(R.layout.mb_default_barcode_camera_overlay, null);
/** * Shows the view with result image. */ private void showResult() { Image detectedImage = mImageReturnProcessor.getResult().getRawImage(); if (detectedImage == null) { return; } // create bitmap out of last dewarped image mShownBitmap = detectedImage.convertToBitmap(); // display bitmap mImageView.setImageBitmap(mShownBitmap); // display overlay mResultView.setVisibility(View.VISIBLE); // reset result state which is used in animation listener mHaveResult = false; if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { // if write permission is not granted don't show save button mBtnSave.setVisibility(View.INVISIBLE); // request write permission requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_STORAGE_REQUEST_CODE); } } }
@Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); finish(); } }).setTitle("Problem").setMessage(exc.getMessage()).setCancelable(false).create().show();
@Override public void onScanningDone(@NonNull RecognitionSuccessType recognitionSuccessType) { mRecognizerView.pauseScanning(); if(!mQuadViewManager.isAnimationInProgress()) { // if animation has ended, show result runOnUiThread(new Runnable() { @Override public void run() { showResult(); } }); } else { // else result will be shown when animation ends (animation listener) mHaveResult = true; } }
@Override public void onClick(View v) { // save image to gallery String url = MediaStore.Images.Media.insertImage(DetectorActivity.this.getContentResolver(), mShownBitmap, "Detected Image", ""); Log.i(DetectorActivity.this, "Image saved to URL {}", url); // release Bitmap mImageView.setImageResource(android.R.color.transparent); mShownBitmap = null; // hide resultView mResultView.setVisibility(View.INVISIBLE); mRecognizerView.invalidate(); // resume scanning if (mRecognizerView != null && mActivityState == ActivityState.RESUMED && mRecognizerView.getCameraViewState() == BaseCameraView.CameraViewState.RESUMED) { mRecognizerView.resumeScanning(true); } } });
@Override public void onSizeChanged(int width, int height) { Log.d(this, "[onSizeChanged] Width:{}, Height:{}", width, height); int horizontalMargin = (int) (width * 0.07); int verticalMargin = (int) (height * 0.07); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { int tmp = horizontalMargin; horizontalMargin = verticalMargin; verticalMargin = tmp; } if (mBackButton != null) { // set margins for back button FrameLayout.LayoutParams backButtonParams = (FrameLayout.LayoutParams) mBackButton.getLayoutParams(); if (backButtonParams.leftMargin != horizontalMargin || backButtonParams.topMargin != verticalMargin) { backButtonParams.setMargins(horizontalMargin, verticalMargin, horizontalMargin, verticalMargin); mBackButton.setLayoutParams(backButtonParams); } } if (mTorchButton != null) { // set margins for torch button FrameLayout.LayoutParams torchButtonParams = (FrameLayout.LayoutParams) mTorchButton.getLayoutParams(); if (torchButtonParams.leftMargin != horizontalMargin || torchButtonParams.topMargin != verticalMargin) { torchButtonParams.setMargins(horizontalMargin, verticalMargin, horizontalMargin, verticalMargin); mTorchButton.setLayoutParams(torchButtonParams); } } }