android:怎样将Uri类型的图片数据转换成流 5

我在获取到手机本地图片的时候使用了这个方法switch(view.getId()){caseR.id.activity_changepersonaldata_image:... 我在获取到手机本地图片的时候使用了这个方法
switch (view.getId()){
case R.id.activity_changepersonaldata_image:
Intent intent=new Intent(Intent.ACTION_PICK,null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
startActivityForResult(intent, 0x1);
break;
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == 0x1 && resultCode == RESULT_OK) {
if (data != null) {
//data.getData为Uri类型
photo=data.getData().toString();
image.setImageURI(data.getData());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
目的是点击图片获取到手机的本地图片数据,我获取到的数据data.getData()的是Uri类型的数据。我想问的问题是怎样把获取到的Uri类型的数据data.getData()传到后台接口中去呢,顺便说一下,我在向后台传送数据的时候使用的网络请求时OkHttpUtils的post方式请求的。是不是需要在.addParams()方法中传到参数类型要转换成流的形式。
展开
 我来答
ruin9152
2017-08-18 · TA获得超过714个赞
知道小有建树答主
回答量:488
采纳率:0%
帮助的人:159万
展开全部

ContentResolver resolver = getContentResolver();

Cursor cursor = resolver.query(originalUri, proj, null, null, null);
// 按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
// 将光标移至开头 ,这个很重要,不小心很容易引起越界
cursor.moveToFirst();
// 最后根据索引值获取图片路径
String path = cursor.getString(column_index);

这样就获得了图片的路径。

下面说图片上传,现在一般上传都用Okhttp 框架了,直接上传个File类就可以,不需要自己在转成数据流,给你个连接,我写的工具类,你也可以查一下,这个很方便http://blog.csdn.net/xihe9152/article/details/68485040,使用前需要先依赖Okhttp3


东开七4
2017-08-17 · TA获得超过267个赞
知道答主
回答量:419
采纳率:28%
帮助的人:69万
展开全部
大3岁的女生
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式