Android 获取图库保存地址


一、流程概述

为了在 Android 应用中获取图库保存地址,我们需要通过以下步骤来实现:

步骤 操作
1 请求读取存储权限
2 打开图库
3 获取选择的图片
4 获取图片保存地址

二、具体步骤

1. 请求读取存储权限

首先,在 AndroidManifest.xml 文件中添加以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

然后在代码中请求权限:

if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}

2. 打开图库

通过 Intent 打开图库:

Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 2);

3. 获取选择的图片

onActivityResult 方法中获取选择的图片 Uri:

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 2 && resultCode == RESULT_OK && data != null) {
        Uri selectedImageUri = data.getData();
        // 处理选中的图片
    }
}

4. 获取图片保存地址

通过 ContentResolver 查询获取图片保存地址:

String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImageUri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String imagePath = cursor.getString(columnIndex);
cursor.close();

三、总结

通过以上步骤,我们可以实现在 Android 应用中获取图库保存地址。首先确保已经请求了读取存储权限,然后打开图库进行选择图片,接着在 onActivityResult 方法中获取选择的图片 Uri,最后通过 ContentResolver 查询获取图片保存地址。希望以上内容可以帮助你成功实现该功能!


gantt
    title Android 获取图库保存地址流程甘特图
    dateFormat  YYYY-MM-DD
    section 实施
    请求读取存储权限           :done, 2023-04-10, 1d
    打开图库                 :done, 2023-04-11, 1d
    获取选择的图片           :done, 2023-04-12, 1d
    获取图片保存地址         :done, 2023-04-13, 1d