Introduction
Since android.hardware.camera is deprecated after API V21, we use android.hardware.camera2.*. The related reference is http://developer.android.com/reference/android/hardware/camera2/package-summary.html . But this is a kind of a dictionary. We need simple tutorials. There is no good sample code even in http://developer.android.com .After long googling I found good one :
http://blog.csdn.net/torvalbill/article/details/40378539 . And I made my own document focused on only Camera Preview.
All of my code is here : https://github.com/stereoboy/android_samples
Setup All of related objects
The following list is as follows:- CameraManager
- Select Camera
- Create CameraDevice
- CameraDevice
- Create CaptureRequest
- Create CameraCaptureSession
- CaptureRequest, CaptureRequest.CameraBuilder
- Link Surface for Viewing
- Make CaptureRequest
- CameraCaptureSession
- Capture Camare Image and put the result on the Surface registered in CaptureRequest.
One of reasons why the related objects are a little bit complex is most of set-up process is done asynchronously. For example when we create CameraDevice, at first we register a callback function on CameraManager. When CameraDevice is created and the callback is called, we get CameraDevice in the callback code.
Repeated Capture by using HandlerThread
Main thread should not be blocked by Camera Capture. So we set up a background thread using HandlerThread and Handler