怎么将相机新拍的照片存储到系统相册里面
时间: 2024-01-22 08:19:49 浏览: 30
可以通过以下步骤将相机新拍的照片存储到系统相册里面:
1. 首先,需要在AndroidManifest.xml文件中添加WRITE_EXTERNAL_STORAGE和READ_EXTERNAL_STORAGE权限。
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
```
2. 在拍摄照片的Activity中,需要设置照片的输出路径。可以通过以下代码实现:
```java
private static final int REQUEST_IMAGE_CAPTURE = 1;
private File photoFile;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
try {
photoFile = createImageFile();
} catch (IOException ex) {
ex.printStackTrace();
}
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.android.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
}
private File createImageFile() throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
return image;
}
```
3. 在onActivityResult()方法中,将照片保存到系统相册中。可以通过以下代码实现:
```java
private void galleryAddPic() {
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(mCurrentPhotoPath);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
}
```
在onActivityResult()方法中调用galleryAddPic()方法:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
galleryAddPic();
// 显示照片
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageURI(Uri.fromFile(photoFile));
}
}
```
通过上述步骤,就可以将相机新拍的照片存储到系统相册中了。