# learnAndroid **Repository Path**: hewangjs/learn-android ## Basic Information - **Project Name**: learnAndroid - **Description**: 安卓学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-06 - **Last Updated**: 2023-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Android疯狂学习 #### Camera预览 使用 camera1.0 [API](https://developer.android.com/training/camera-deprecated/cameradirect?hl=zh-cn) SurfaceView 让开发者在UI线程之外,显示图像和动画的View,一般用于显示实时数据,比如相机预览、视频播放或者游戏画面。 在UI线程之外的意思是,SurfaceView的绘制在一个独立的线程中进行,不会影响主线程,因此也提供了回调来处理View的创建、销毁和绘制等事件。 预览过程 1. 获取相机实例 2. 设置预览参数 3. 设置相机参数 4. 创建预览类 大多数设备上,相机预览的默认屏幕方向是横向的,为了简化相机预览渲染,可以在清单中将应用的预览Activity屏幕方向更改为横向。··· ```xml ``` 当然,相机预览不必呼吁横屏模式,可以使用*setDisplayOrientation(90)*方法设置预览图片的旋转角度,旋转90度变为竖屏 #### Camera2.0 预览 Camera2.0的使用要比Camera1.0要复杂的多 [API介绍资料](https://deepinout.com/android-camera-official-documentation/android-camera2-api/android-camera2-api-overview.html) openCamera流程 1. 在AndroidManifest.xml中申请Camera权限 2. 获取CameraManager 3. 获取支持的Camera Id List 4. 从CameraCharacteristic获取Facing 5. 选择正确的CameraId 6. CameraManager.openCamera openCamera要设置监听 1. CameraManager.openCamera 2. CameraDevice.StateCallback 可以设置监听 3. onOpened 在此处设置捕获预览 4. onClosed 5. onDisconnected 关闭并释放camera 6. onOpened 如何切换摄像头,如何拍摄图片,如何录制 设置参数,设置监听,监听通过一个对象的形式