android 获取本地图片路径

来源:互联网 发布:mac flash插件错误 编辑:程序博客网 时间:2024/04/30 21:57

第一次写博客,格式不怎样会调,请多见谅!!!

不多说直接上代码,代码中在做仔细解释:

//调用android系统自带的方法
private void setImage() {    //使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);    intent.setType(IMAGE_TYPE);    this.startActivityForResult(intent, IMAGE_CODE);}
重写onActivityResult方法

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        getImgPath(requestCode, resultCode, data);    }    public void getImgPath(int requestCode, int resultCode, Intent data){        //此处的 RESULT_OK 是系统自定义得一个常量        if (resultCode != -1) {            return;        }        //此处的用于判断接收的Activity是不是你想要的那个        if (requestCode == IMAGE_CODE) {            try {//                //获得图片的uri//                Uri originalUri = data.getData();                //显得到bitmap图片                imgShow.setImageBitmap(getImg(data));                //显示图片路径                imgPath.setText("@"+getPath(data));            } catch (Exception e) {                Log.e("TAG-->Error", e.toString());            }        }    }    public Bitmap getImg(Intent data) throws IOException {        //外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口        ContentResolver resolver = getContentResolver();        //获得图片的uri        Uri originalUri = data.getData();        Bitmap bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);        return bm;    }    public String getPath(Intent data){        //这里开始的第二部分,获取图片的路径:        String[] imgPath = {MediaStore.Images.Media.DATA};        //好像是android多媒体数据库的封装接口,具体的看Android文档        Cursor cursor = managedQuery(data.getData(), imgPath, null, null, null);        //按我个人理解 这个是获得用户选择的图片的索引值        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);        //将光标移至开头 ,这个很重要,不小心很容易引起越界        cursor.moveToFirst();        //最后根据索引值获取图片路径        String path = cursor.getString(column_index);        return path;    }

0 0
原创粉丝点击