如题,请问如何在调用camera的时候,自动对焦,谢谢大家指点下.

解决方案 »

  1.   

    让自己开发的照相软件也可以自动对焦
    http://dev.10086.cn/cmdn/wiki/index.php?doc-view-3630.html
      

  2.   

    拍照button按下时 Java代码 01.mCamera.autoFocus(mAutoFocusCallBack);  
    自动对焦回调函数mAutoFocusCallBack Java代码 01.private AutoFocusCallback mAutoFocusCallBack = new AutoFocusCallback() {  
    02.  
    03.    @Override  
    04.    public void onAutoFocus(boolean success, Camera camera) {  
    05.              
    06.        if (success) {  
    07.  
    08.            mInProgress = true;  
    09.  
    10.            // set parameters of camera  
    11.            Camera.Parameters Parameters = mCamera.getParameters();  
    12.            Parameters.setPreviewSize(IMG_PREVIEW_WIDTH, IMG_PREVIEW_HEIGHT);  
    13.            Parameters.setPictureSize(IMG_WIDTH, IMG_HEIGHT);  
    14.            mCamera.setParameters(Parameters);  
    15.  
    16.            mCamera.takePicture(mShutterListener, null, mImageCaptureCallback);  
    17.        }  
    18.    }  
    19.};  
    设置Camera.Parameters好像有些问题,如果设置了相机(或者是SDK)不支持的分辨率就会报错,估计要添加判断。 
    目前的设置为 Java代码 01.private static int IMG_PREVIEW_WIDTH = 480;  
    02.private static int IMG_PREVIEW_HEIGHT = 320;  
    03.private static int IMG_WIDTH = 1280;  
    04.private static int IMG_HEIGHT = 960;  
    监听事件mShutterListener Java代码 01.private Camera.ShutterCallback mShutterListener = new Camera.ShutterCallback() {  
    02.    public void onShutter() {  
    03.    }  
    04.};  
    拍照回调函数mImageCaptureCallback 
    这里使用了线程,因为考虑到保存图片时一般都会显示一个progress dialog,如果不用线程的话,dialog画面会定在那里,无法起到预期的效果。 
    当然不用线程也不会有错,适当修改一下就可以了。 Java代码 01.private PictureCallback mImageCaptureCallback = new PictureCallback() {  
    02.  
    03.    @Override  
    04.    public void onPictureTaken(final byte[] data, Camera camera) {  
    05.  
    06.        new Thread(new Runnable() {  
    07.  
    08.            @Override  
    09.            public void run() {  
    10.  
    11.                // get path to save image file  
    12.                String filePath = "/sdcard/DCIM/Camera";  
    13.  
    14.                // generate file name  
    15.                String name = "mytest.jpg";  
    16.                String fileName = filePath + name;  
    17.  
    18.                FileOutputStream fos = null;  
    19.                try {  
    20.                    // saving file  
    21.                    fos = new FileOutputStream(fileName);  
    22.                    fos.write(data);  
    23.                    fos.close();  
    24.  
    25.                } catch (Exception e) {  
    26.  
    27.                    // close file if error  
    28.                    if (fos != null) {  
    29.                        try {  
    30.                            fos.close();  
    31.                        } catch (IOException e1) {  
    32.                            e1.printStackTrace();  
    33.                        }  
    34.                        try {  
    35.                            throw e;  
    36.                        } catch (Exception e1) {  
    37.                            e1.printStackTrace();  
    38.                        }  
    39.                    }  
    40.                    // close scene  
    41.                    finish();  
    42.                }  
    43.            }  
    44.        }).start();  
    45.    }  
    46.};  
    最后提醒一下,别忘记在AndroidManifest.xml里增加 Java代码 01.<uses-permission Android:name="android.permission.CAMERA" />  
      

  3.   

    楼主,你能不能告诉我怎样调用系统带的那个照相功能,能不能简简单单地使用
    mCamera = Camera.open();这样?
    我拿真机试程序总是崩掉
    不需要什么预览,存储图片什么的,就仅仅跳转到系统自带的拍照界面去
      

  4.   

    解决了,原来就是
    Intent intent = new Intent(); //调用照相机
    intent.setAction("android.media.action.STILL_IMAGE_CAMERA"); 
    startActivity(intent);
      

  5.   

    我在做相机开发,想设置其焦距
    Camera.getParameters().isZoomSupported() -->true
    Camera.getParameters().isSmoothZoomSupported() -->false这种情况下,我怎么才能实现变焦呢??
      

  6.   

    自动聚焦很多人是在拍照前自动聚焦的,我是在预览的时候自动聚焦,当按下预览按钮的时候自动聚焦,不满意的话移动距离再次按预览,再次聚焦。然后再拍照。 如果在拍照前自动聚焦,聚焦后要设置个延时吧???
    两种思路都可以啦,我的实现在这里:http://blog.csdn.net/yanzi1225627/article/details/7926994