android 调用系统相机并且储存在新的文件夹里
时间: 2024-01-24 16:17:19 浏览: 25
要在 Android 应用程序中调用系统相机并将拍摄的照片保存在新文件夹中,可以按照以下步骤进行操作:
1. 首先,在你的 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在你的 Activity 中添加以下代码来启动相机应用程序:
```
// 创建一个新的文件来存储照片
File photoFile = new File(Environment.getExternalStorageDirectory(), "photo.jpg");
// 创建 Intent 来启动相机应用程序
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
// 启动相机应用程序
startActivityForResult(intent, REQUEST_CODE_CAMERA);
```
3. 在 onActivityResult() 方法中,你可以处理拍摄的照片:
```
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_CAMERA && resultCode == RESULT_OK) {
// 读取拍摄的照片
File photoFile = new File(Environment.getExternalStorageDirectory(), "photo.jpg");
Bitmap bitmap = BitmapFactory.decodeFile(photoFile.getAbsolutePath());
// 将照片保存到新文件夹中
File newFolder = new File(Environment.getExternalStorageDirectory(), "new_folder");
if (!newFolder.exists()) {
newFolder.mkdirs();
}
File newFile = new File(newFolder, "photo.jpg");
try {
FileOutputStream outputStream = new FileOutputStream(newFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
以上代码假设你的应用程序具有适当的权限来读写外部存储器。如果你需要支持 Android 7.0 或更高版本,则还需要进行一些额外的步骤,例如使用 FileProvider 来共享文件。