我的Android应用程序的"相机"模块的"自动对焦"功能

raj*_*asn 0 camera android autofocus camera-calibration android-camera

几天以来,我一直在使用CAMERA模块进行应用.我已经定制了完整的相机模块,而不是通过意图调用硬件内置的移动相机.我已经使用了快门,图片等的回叫.现在我正在尝试为这个定制的相机添加ZOOM和AUTO-FOCUS功能.任何人都可以告诉我添加ZOOM和AUTO-FOCUS功能的方法以及清单文件中应该提到的所需权限..希望我会尽快得到帮助.

And*_*cks 6

来自我的观察结果.

1) Camera.autoFocus是一次性的号召,在适用时 Camera.getParameters.getFocusMode()要么是FOCUS-MODE-AUTOFOCUS-MODE-MACRO在其他情况下,你不需要调用该 autoFocus方法.请参阅API文档并专门关注它们.

2)通过一次性调用,意味着此方法不会注册 AutoFocusCallback实例以连续接收通知.

3)相反,FOCUS-MODE-AUTO甚至不是动态和连续的焦点常数.相反,您可能希望使用FOCUS-MODE-EDOFFOCUS-MODE-CONTINUOUS-PICTURES取决于您正在使用和构建的API级别和SDK版本.

4)实际的Device Camera可能不支持某些 FOCUS-MODE常量,例如EDOFINFINITE.始终确保在创建摄像机参数时,检查 getSupportedFocusModes并使用适用的常量.

5)camera.autoFocus之前的调用 camera.takePicture可以使得到的jpeg-byte-array膨胀PictureCallBack至至少比原始大小多50%.不autoFocus()显式调用有时可能导致前autoFocus()一个以非常低的分辨率结束,这可能导致jpeg-byte-array长度仅为10K字节,从而导致来自的空图像位图BitmapFactory.

6)关于自动对焦权限,请参阅API文档.

7)关于缩放,它没有实现自动对焦功能那么复杂.根据屏幕交互(如滑块)或硬件键(如音量键),您可以实现一个ZoomChangeListener 可以CameraCamera收到实例后立即注册的内容open(int cameraId).