Sample学习,本篇是Camera2使用学习
Google project https://developer.android.com/samples/Camera2Basic/project.html
就一个文件Camera2BasicFragment
camera2使用:(横屏布局 res/layout-land)
1.画布使用的是 TextureView,启动了一个后台进程
//An additional thread for running tasks that shouldn't block the UI.
private HandlerThread mBackgroundThread;
// A {@link Handler} for running tasks in the background.
private Handler mBackgroundHandler;
给TextureView设置监听 TextureView.SurfaceTextureListener()
2. onSurfaceTextureAvailable 回调时打开相机
相机是使用 Manager 打开
CameraManager manager = (CameraManager) getActivity().getSystemService(Context.CAMERA_SERVICE);
manager.getCameraIdList() 返回当前可用相机数量,寻找可以打开的相机,依靠 mCameraId
接着一个很重要的对象 ImageReader ,目测拍照获取的数据都在里面
ImageReader newInstance(int width, int height, int format, int maxImages)
设置setOnImageAvailableListener,回调时 帧数据就在里面
然后 manager.openCamera(@NonNull String cam