小弟新人,问个问题,求各位大神帮忙解决
熊业飞 2016-06-27 10:44:31 各位,小弟我在一个app上面注册的时候需要调用系统图库,直接贴代码
/******* 上传头像 ********/
@OnClick({ R.id.uploadHeadImg, R.id.doctorHeadCiv })
private void uploadHeadImg(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
"image/*");
startActivityForResult(intent, Constant.PHOTO_HEAD);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constant.PHOTO_HEAD:
if (data != null) {
Uri uri = data.getData();
if (headBitmap != null) {
headBitmap.recycle();
}
uploadHeadImg.setVisibility(View.INVISIBLE);
doctorHeadCiv.setVisibility(View.VISIBLE);
headBitmap = PictureUtil.decodeUriAsBitmap(mContext, uri);
doctorHeadCiv.setImageBitmap(headBitmap);
// 头像参数
String path = PictureUtil.getRealPathFromURI(mContext, uri);
headPicFile = new File(path);
} else {
ToastUtil.debug(mContext, "图片数据为空");
}
break;
其他手机没有任何问题,就小米手机,这里的path空了,下面是那个util类的封装
// 通过URI获取图片路径
public static String getRealPathFromURI(Context context, Uri contentUri) {
String res = null;
// String[] proj = { MediaColumns.DATA };
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = context.getContentResolver().query(contentUri, proj,
null, null, null);
if (cursor.moveToFirst()) {
// int column_index = cursor
// .getColumnIndexOrThrow(MediaColumns.DATA);
int column_index = cursor
.getColumnIndexOrThrow(proj[0]);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}
在线跪等