如何在android Studio中从设备中选择图像及其路径

如何在android Studio中从设备中选择图像及其路径,android,image,android-intent,Android,Image,Android Intent,我需要从设备中选择图像及其完整路径 但是我得到了空值。。这是我的密码 有什么建议吗 private void openPicture() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(in

我需要从设备中选择图像及其完整路径 但是我得到了空值。。这是我的密码 有什么建议吗

    private void openPicture() {

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,
            "Select Picture"), SELECT_PICTURE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            String selectedImagePath = getPath(selectedImageUri);

            Toast.makeText(this, ""+selectedImagePath, Toast.LENGTH_SHORT).show();
        }
    }
}

public String getPath(Uri uri) {

    if( uri == null ) {
        return null;
    }
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    if( cursor != null ){
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String path = cursor.getString(column_index);
        cursor.close();
        return path;
    }
    return uri.getPath();

}
它返回空值。我需要选定的图像路径。

请尝试此方法

File imgFile = new  File("/sdcard/Images/test_image.jpg");

if(imgFile.exists()){

Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

myImage.setImageBitmap(myBitmap);
}
并将此权限包括在清单文件中:

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

selectedImageUri为空或您获得uri。您可以使用uri。你为什么需要pathRaghunandan我需要这样的结果/storage/emulated/0/Download/image.jpgwhy您需要它。你得到一个uri,如果需要的话,你可以用它来上传。读取“SelectedImageUri”将返回如下结果content://com.android.providers.media.documents/documents/imageyes 您可以输入流InputStream=contentResolver.openinputstream您的uri adn,如果InputStream!=null{Bitmap img=BitmapFactory.decodeStreaminputStream}然后是photo.setImageBitMapimg您会得到一个uri not文件。如果您有更好的答案,请在此处提供我已经发表了评论,请参阅问题下的评论