Android studio拍完照保存后显示
时间: 2023-12-21 15:03:45 浏览: 98
要在Android应用程序中拍照并保存图像,可以使用Android Camera API。在拍照之后,您可以将图像保存到设备上的存储位置,然后在应用程序中显示图像。
下面是一个简单的示例:
1. 在您的Android应用程序中添加以下权限:
```xml
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
2. 在布局文件中添加一个ImageView,用于显示拍摄的照片:
```xml
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
3. 在Activity类中添加以下代码来启动相机应用程序并处理拍照结果:
```java
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_IMAGE_CAPTURE = 1;
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = findViewById(R.id.image_view);
// 检查相机是否可用
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) {
// 创建一个意图来启动相机应用程序
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 确保有可处理的应用程序
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// 启动相机应用程序并等待结果
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
}
// 处理相机应用程序返回的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
// 获取拍照的图像
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
// 将图像保存到设备上的存储位置
String path = saveImage(imageBitmap);
// 在ImageView中显示图像
mImageView.setImageBitmap(imageBitmap);
}
}
// 将图像保存到设备上的存储位置
private String saveImage(Bitmap imageBitmap) {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File imageFile = null;
try {
imageFile = File.createTempFile(imageFileName, ".jpg", storageDir);
FileOutputStream fos = new FileOutputStream(imageFile);
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
return imageFile.getAbsolutePath();
}
}
```
在上面的代码中,saveImage()方法将图像保存到设备上的存储位置,并返回图像文件的路径。然后,可以使用该路径在ImageView中显示图像。
注意,在使用相机API时,最好使用相机2 API,因为它提供了更多的控制和功能。
阅读全文