Android调用摄像头拍照的使用
- 权限申请:
- 在AndroidManifest.xml文件中添加摄像头使用权限:
<uses-permission android:name="android.permission.CAMERA"/> - 如果需要存储图片,还需要添加文件读写权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> - 注意:在Android 6.0及以上版本,需要动态申请权限。
- 在AndroidManifest.xml文件中添加摄像头使用权限:
- 打开摄像头:
- 通过设置Intent来实现,指定Action为
MediaStore.ACTION_IMAGE_CAPTURE。 - 如果需要处理拍照后的数据,可以使用
startActivityForResult()方法启动相机。
- 通过设置Intent来实现,指定Action为
- 拍照后传回数据处理:
- 在
onActivityResult()方法中处理返回的Intent,从中获取拍照后的图片数据。 - 可以使用
data.getData()方法获取图片的Uri,然后使用图片加载库(如Glide)加载并显示图片。
- 在
- 存储图片:
- 在Android 7.0(API级别24)及以上版本,由于安全性的考虑,不再允许直接使用
file://URI。因此,需要使用FileProvider来共享文件。 - 在AndroidManifest.xml中定义
FileProvider,并配置相应的<meta-data>标签。 - 创建一个File对象来存储拍照后的图片,并使用
FileProvider.getUriForFile()方法获取该文件的Uri。
- 在Android 7.0(API级别24)及以上版本,由于安全性的考虑,不再允许直接使用
- 代码实现:
首先,确保在
AndroidManifest.xml中添加了必要的权限:<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />在
Activity中:import android.Manifest;import android.content.ContentValues;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.net.Uri;import android.os.Build;import android.os.Bundle;import android.os.Environment;impor

7981

被折叠的 条评论
为什么被折叠?



