手机的摄像头不支持聚焦。怎么实现自定义的拍照。
下面就是自定义拍照的大致过程拍照的核心类是android。hardware。Camera,通过Camera类的静态方法open可以获得Camera对象,并通过Camera类的startPreview方法开始拍照,最后通过Camera类的takePicture方法结束拍照,并在相应的事件中处理照片数据。 上述的过程只是拍照过程的简化。在拍照之前,还需要做如下的准备工作。 指定用于显示拍照过程影像的容器,通常是SurfaceHolder对象。由于影像需要在SurfaceView对象中显示,因此可以使用SurfaceView类的getHolder方法获得SurfaceHolder对象。 ...全部
下面就是自定义拍照的大致过程拍照的核心类是android。hardware。Camera,通过Camera类的静态方法open可以获得Camera对象,并通过Camera类的startPreview方法开始拍照,最后通过Camera类的takePicture方法结束拍照,并在相应的事件中处理照片数据。
上述的过程只是拍照过程的简化。在拍照之前,还需要做如下的准备工作。 指定用于显示拍照过程影像的容器,通常是SurfaceHolder对象。由于影像需要在SurfaceView对象中显示,因此可以使用SurfaceView类的getHolder方法获得SurfaceHolder对象。
在拍照过程中涉及到一些状态的变化。这些状态包括开始拍照(对应surfaceCreated事件方法);拍照状态变化(例如图像格式或方向,对应surfaceChanged事件方法);结束拍照(对应surfaceDestroyed事件方法)。
这3个事件方法都是在SurfaceHolder。Callback接口中定义的,因此,需要使用SurfaceHolder接口的addCallback方法指定SurfaceHolder。Callback对象,以便捕捉这3个事件。
拍完照后需要处理照片数据。处理这些数据的工作需要在PictureCallback接口的onPictureTaken方法中完成。当调用Camera类的takePicture方法后,onPictureTaken事件方法被调用。
如果需要自动对焦,需要调用Camera类的autoFocus方法。该方法需要一个AutoFocusCallback类型的参数值。AutoFocusCallback是一个接口,在该接口中定义了一个onAutoFocus方法,当摄像头正在对焦或对焦成功都会调用该方法。
收起