从库中选择PicturePath将其存储在dataBase中

时间:2016-04-21 18:52:54

标签: android mysql android-studio

我使用此代码从图库上传图像。它工作得很好..但问题是我想获取图像的路径将其存储在wamp dataBase ..`

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());


    }


}
   } 

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

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());
    }
}

答案 1 :(得分:0)

把这段代码:

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();
        }
    }
}