Android: как получить настройки камеры по умолчанию для встроенного приложения камеры

Я видел много руководств и информации, но я не мог найти ни одного места, как использовать настройки по умолчанию существующего приложения камеры в любом другом настраиваемом приложении камеры. Я видел резкость изображения и его фокусировку очень хорошо во встроенной камере. Теперь я создаю собственное приложение с моими индивидуальными функциями, но я все еще не могу сделать его резким и не размытым ... Я не хочу использовать технику Intent камеры, потому что мне нужно потом выполнить некоторую обработку изображений.

Я использовал масштабирование, но, как ни странно, масштабирование не работает должным образом ... как будто оно работает во встроенном приложении камеры

вот мой код изменения поверхности

   public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
{
    Log.e(TAG, "surfaceChanged");

    // XXX stopPreview() will crash if preview is not running
    if (mPreviewRunning) {
        mCamera.stopPreview();
    }


     Camera.Parameters params = mCamera.getParameters();
     List<Camera.Size> sizes = params.getSupportedPreviewSizes();
     mFrameWidth =  w;
     mFrameHeight = h;

     // selecting optimal camera preview size
     {
         double minDiff = Double.MAX_VALUE;
         for (Camera.Size size : sizes) 
         {
             if (Math.abs(size.height - h) < minDiff) 
             {
                 mFrameWidth = size.width;
                 mFrameHeight = size.height;
                 minDiff = Math.abs(size.height - h);
             }
         }
     }

    try 
    {

        //params.set("rotation", 180);
        //params.set("orientation", "landscape");
        //params.set("auto", "WHITE_BALANCE_AUTO");//WHITE_BALANCE_AUTO 




        Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

        if(display.getRotation() == Surface.ROTATION_0)
        {
            params.setPreviewSize(mFrameHeight, mFrameWidth);                           
            mCamera.setDisplayOrientation(90);
        }

        if(display.getRotation() == Surface.ROTATION_90)
        {
            params.setPreviewSize(mFrameWidth, mFrameHeight);                           
        }

        if(display.getRotation() == Surface.ROTATION_180)
        {
            params.setPreviewSize(mFrameHeight, mFrameWidth);               
        }

        if(display.getRotation() == Surface.ROTATION_270)
        {
            params.setPreviewSize(mFrameWidth, mFrameHeight);
            mCamera.setDisplayOrientation(180);
        }

        if(params.isZoomSupported())
        {

            Log.e(TAG, params.getZoom()+"surfaceChanged camer zoom"+params.getMinExposureCompensation());
            params.setZoom(params.getMaxZoom());
            params.setExposureCompensation(1);
                  //    params.setColorEffect("none");
            params.setWhiteBalance(params.WHITE_BALANCE_AUTO);
            params.setFocusMode(params.FOCUS_MODE_AUTO);
            params.setSceneMode(params.SCENE_MODE_ACTION);

        }

        params.set("auto", "FOCUS_MODE_AUTO");

        params.setPreviewSize(mFrameWidth,mFrameHeight);
        mCamera.setParameters(params);

        mCamera.setPreviewDisplay(holder);
    }
    catch (IOException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    mCamera.startPreview();
    mPreviewRunning = true;
}  

Пожалуйста, дайте мне знать, как сделать предварительный просмотр камеры точно таким же как встроенное приложение.

6
задан wolvorinePk 19 February 2012 в 13:02
поделиться