Android - 获取用户从图库中选择的图像的路径

标签 android

我正在开发一个 Android 应用程序,当用户点击一个按钮时,该应用程序会将用户带到图库中选择一张照片,然后返回到该应用程序以显示照片。

这是我的 onActivityResult 回调函数的一部分:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode == PICK_IMAGE && data != null && data.getData() != null) {

        Uri imageUri = data.getData();

        //User had pick an image.
        Cursor cursor = getContentResolver().query(imageUri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
        cursor.moveToFirst();

        //Link to the image
        final String imageFilePath = cursor.getString(0); 

        // imageFilePath is null

运行代码时,imageUri 包含一些内容提供程序 uri,如 content:\\something,但是当我尝试获取图像的文件路径时,我为空。

在这种情况下,我应该如何检索用户选择的图像文件路径?

谢谢

最佳答案

这是我的代码,可以正常工作。

Uri selectedImageURI = data.getData();
imageFile = new File(getRealPathFromURI(selectedImageURI));

private String getRealPathFromURI(Uri contentURI) {
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    if (cursor == null) { // Source is Dropbox or other similar local file path
        return contentURI.getPath();
    } else { 
        cursor.moveToFirst(); 
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        return cursor.getString(idx); 
    }
}

你会得到/sdcard/imagepath ..

关于Android - 获取用户从图库中选择的图像的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20895691/

相关文章:

android - 在 TextView onTextChanged 上设置文本

javascript - Android:使用 Javascript 制作全景图像的循环 Horizo​​ntalScrollView

java - 如何在 Firebase 数据库 Android 上删除选定的子项

java - 线程挂起() UnsupportedOperationException

android - 如何通过按钮启动和停止倒计时?

android - Gradle :无效符号: 'new'

android - 如何同步firebase数据?

Android:谷歌加按钮加载永不停止

android:inputType ="numberDecimal"与 InputType.TYPE_NUMBER_FLAG_DECIMAL

android - 如何使用原生库