Android camera 将拍摄的照片保存到变量中
时间: 2024-10-09 19:15:06 浏览: 49
在Android中,将相机拍摄的照片保存到变量中通常涉及到以下几个步骤:
1. **获取Camera权限**:首先确保应用已经获得了访问相机的权限,这是必要的前提条件。
2. **创建Intent**:启动相机应用来拍照,可以使用`ACTION_IMAGE_CAPTURE` Intent,并设置回调意图数据接收器。
```java
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
```
3. **处理ActivityResult**:当用户完成拍照后,系统会发送一个结果返回给你的活动。你需要在`onActivityResult()`方法中检查并解析结果。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
// 将Bitmap保存到变量或文件
saveImage(bitmap);
}
}
```
4. **保存图片**:你可以选择将Bitmap保存到应用程序内部存储(`getExternalFilesDir()`),文件路径,数据库或者其他适合的地方。这里是一个简单的例子:
```java
private void saveImage(Bitmap bitmap) {
File imageFile = getOutputMediaFile();
try {
FileOutputStream fos = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private File getOutputMediaFile() {
String timeStamp = TimestampUtils.getCurrentTimestamp();
File mediaStorageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
return new File(mediaStorageDir, "image_" + timeStamp + ".jpg");
}
```
阅读全文