Android启动相册选择一张图片返回

启动相册

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent,1)  // 第二个参数是请求码

获取结果

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case 1:  // 请求码
            parseUri(data);
            break;
        default:
    }
}

// 解析被选择的图片文件路径

public String parseUri(Intent data) {
    Uri uri=data.getData();
    String imagePath;
    // 第二个参数是想要获取的数据
    Cursor cursor = getContentResolver()
            .query(uri, new String[]{MediaStore.Images.ImageColumns.DATA},
                    null, null, null);
    if (cursor == null) {
        imagePath = uri.getPath();
    } else {
        cursor.moveToFirst();
        // 获取数据所在的列下标
        int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
        imagePath = cursor.getString(index);  // 获取指定列的数据
        cursor.close();
    }
    return imagePath;  // 返回图片地址
}

你可能感兴趣的:(Android启动相册选择一张图片返回)