按理来说,拍照应该是很简单的。随着功能的复杂,代码也是越来越多,流程越来越长。想看看地理位置是怎么保存的,于是就研究了一下OpenCamera的拍照流程。在回调时有点乱。
clickedTakePhoto()
takePicture()
takePicturePressed()
takePicturePressed()
takePicture()
takePhoto()。这里注册了一个自动对焦回调CameraController.AutoFocusCallback 。
Camera.AutoFocusCallback.onAutoFocus()
CameraController.AutoFocusCallback.onAutoFocus()
takePhotoWhenFocused()。这里注册了一个回调CameraController.PictureCallback
takePictureNow()。注册了一个回调Camera.PictureCallback()
Camera.PictureCallback.onPictureTaken()
CameraController.PictureCallback.onPictureTaken()
onPictureTaken()
saveImage()
saveImageJpeg()
saveImage()(Request)
saveSingleImageNow()