1.使用相对路径的方法(只能在本地显示,无法同步到其他):
// 调用相机拍照
LoggerUtils.e("tag1", "photoURI==" + photoUri.toString());
getPhotoUrlFromUri(photoUri);
//从相册选择
getPhotoUrlFromUri(data.getData());
/**
* 调用相机拍照/相册的回调:
* @param photoUri
*/
public void getPhotoUrlFromUri(Uri photoUri) {
if (photoUri == null) {
Log.i("PICNULL","照片不能为空,请重新选择照片");
return;
}
//拿到图片url,修改数据,有接口进行调试:
String path = TCUtils.getPath(PersonCenterActivity.this, photoUri);
ShareMusicUtils.photoURL=photoUri;
if (path==null) {
Toast.makeText(this, "没有获取到图片", Toast.LENGTH_SHORT).show();
changeSelectPicture(photoUri);
}else if (path!=null){
Toast.makeText(this, "获取到图片", Toast.LENGTH_SHORT).show();
changeSelectPicture(photoUri);
}
}
//加载图片:
GlideUtils.loadCircleImage(this, update_header, TCUtils.getPath(this, uri));
2.使用绝对路径上传图片:
String realPathFromUri = RealPathFromUriUtils.getRealPathFromUri(this, data.getData());
/**
* 根据Uri获取图片的绝对路径
*
* @param context 上下文对象
* @param uri 图片的Uri
* @return 如果Uri对应的图片存在, 那么返回该图片的绝对路径, 否则返回null
*/
public static String getRealPathFromUri(Context context, Uri uri) {
int sdkVersion = Build.VERSION.SDK_INT;
if (sdkVersion >= 19) { // api >= 19
return getRealPathFromUriAboveApi19(context, uri);
} else { // api < 19
return getRealPathFromUriBelowAPI19(context, uri);
}
}
//加载图片:
GlideUtils.loadCircleImage(this, update_header, realPathFromUri);
//然后使用post上传文件即可