Android студия Camera Access на Samsung Galaxy S7, изображение размытое - PullRequest
0 голосов
/ 08 декабря 2018

В моем приложении я открываю камеру для пользователя, чтобы сделать снимок текста.К сожалению, автофокус не работает вообще, и изображение на S7 очень размытое.Я не очень понимаю код, так как только что скопировал его.Пожалуйста, найдите ниже код:

mCamera = getCameraInstance();

            Camera.Parameters params = mCamera.getParameters();
         params.setFocusMode(Camera.Parameters.FOCUS_MODE_MACRO);

        //params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);


        Camera.Size desiredSize = getPictureSize(params.getSupportedPictureSizes());
        System.out.println(desiredSize.width);
       params.setPictureSize(desiredSize.width, desiredSize.height);
            mCamera.setParameters(params);

            mPreview = new CameraPreview(this, mCamera);
            FrameLayout preview = findViewById(R.id.camera_preview);
            preview.addView(mPreview);
            rotation = CameraPreview.correctCameraDisplayOrientation(MainActivity.this, mCamera);
            apiInterface = RetrofitInstance.getRetrofitInstance().create(ApiInterface.class);

            Bundle extras = getIntent().getExtras();
            if(extras!=null){
                Uri imgUri = account.getPhotoUrl();
                new ImageLoadTask(imgUri, toolbar).execute();
            }

      //  }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);

        // Associate searchable configuration with the SearchView
        SearchManager searchManager =
               (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView =
                (SearchView) menu.findItem(R.id.action_search).getActionView();
        searchView.setSearchableInfo(
                searchManager.getSearchableInfo(getComponentName()));


       // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
         //   searchView.getSuggestionsAdapter().setDropDownViewTheme(this.getTheme());
       // }

        return true;
    }

    private Camera.Size getPictureSize(List<Camera.Size> sizes) {

        for (Camera.Size size : sizes) {
            if ((size.width * size.height) / 1024000 <= 2.5) {
                return size;
            }
        }

        return null; 

Кто-то сейчас знает, в чем здесь проблема?Я очень благодарен за любую помощь!

1 Ответ

0 голосов
/ 17 июня 2019

Вам нужно установить фокус на камеру.используйте код ниже для настройки фокуса

parameters = mCamera.getParameters();
    if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
    } else {
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    }       
    parameters.setJpegQuality(100);
...