Android获取图片的真实路径
时间: 2024-07-20 12:00:35 浏览: 45
在Android中,获取图片的真实路径通常发生在用户选择图片后,通过Activity的`ACTION_GET_CONTENT`或者`ACTION_PICK_MEDIA`等意图来选择图片。以下是一般的步骤:
1. **启动相机或相册选择器**:
使用`Intent`启动相机或相册应用程序,让用户选择图片,例如:
```java
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, SELECT_PICTURE_REQUEST_CODE);
```
2. **处理 onActivityResult**:
当用户选择图片后,会回调`onActivityResult`方法,你可以从这里获取图片路径:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SELECT_PICTURE_REQUEST_CODE && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String imagePath = getPath(selectedImage);
// 这里使用getPath()函数尝试获取图片的文件路径
}
}
private String getPath(Uri uri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(uri, proj, null, null, null);
if (cursor != null) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} else {
return null;
}
}
```
3. **注意文件权限和生命周期**:
获取到的路径可能是在应用内部存储或者外部存储,确保你的应用具有读取对应位置的权限,并在需要的时候妥善处理文件的关闭和清理,因为某些情况下,如设备重启,这些路径可能会失效。
阅读全文