Android 从库中选择PicturePath以将其存储在数据库中

Android 从库中选择PicturePath以将其存储在数据库中,android,mysql,android-studio,Android,Mysql,Android Studio,我用这段代码从gallery上传图像。它工作得很好。但问题是,我想得到图像的路径来存储在wamp数据库中` public class Image extends Activity { ImageView contact; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activit

我用这段代码从gallery上传图像。它工作得很好。但问题是,我想得到图像的路径来存储在wamp数据库中`

public class Image extends Activity {
ImageView contact;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image);


    contact = (ImageView) findViewById(R.id.candidat);
    contact.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select     Contact Image"), 1);


        }
    });
}

public void onActivityResult(int reqCode, int resCode, Intent data) {


    if (resCode == RESULT_OK) {

        if (reqCode == 1)
            contact.setImageURI(data.getData());


    }


}
   } 

感谢您的帮助

您可以使用此方法获得确切的路径-

public String getPathFromURI(Uri contentURI) {
    String result = null;
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst(); 
        int _id = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        result = cursor.getString(_id);
        cursor.close();
    }
    return result;
}
像这样使用它-

public void onActivityResult(int reqCode, int resCode, Intent data) {
    if (resCode == RESULT_OK) {

        if (reqCode == 1)
            contact.setImageURI(data.getData());
           String path = getPathFromURI(data.getData());
    }
}
请输入以下代码:

public static final int IMAGEM = 1;
在“单击放置”对话框中:

 startActivityForResult(Intent.createChooser(new Intent(Intent.ACTION_PICK).setType("image/*"), "Select a image"), IMAGE);
在您的活动中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    try {
        if (resultCode == RESULT_OK && requestCode == IMAGE){
            String pathImg = getRealPathFromURI(intent.getData());
        }
    }catch (Exception e){
        e.printStackTrace();
    }
}


public String getRealPathFromURI(Uri uri) {
//this method work for any api
    Cursor cursor = null;
    try {
        Uri newUri = handleImageUri(uri);
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = getContentResolver().query(newUri,  proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    } catch (Exception e){
        return null;
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}

此外,您还可以使用此处描述的方法
http://hmkcode.com/android-display-selected-image-and-its-real-path/
。它包含不同API级别的方法。感谢您的响应,但当我添加此代码并检查图像时,我的应用程序已停止!!在现实中,我在自己的设备上测试应用程序,因此我不知道如何获得它我是android开发的初学者:/