上传相册图片
View headerView = mNav.getHeaderView(0);
imh = headerView.findViewById(R.id.hand_img);
imh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent,5);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==5&&resultCode==RESULT_OK){
path_img = data.getData();
Toast.makeText(this, path_img.toString(), Toast.LENGTH_SHORT).show();
ivRegisterImg.setImageURI(path_img);
if(path_img.getScheme().equals("file") ){//如果是普通文件的处理,直接new对象
image = path_img.getPath();
}else if(path_img.getScheme().equals("content") ){////如果是通过内容提供者读取,需要到内容提供者中再读取
filepath = getFileFromContentUri(path_img, this);
}else{
Toast.makeText(this, "图片不存在", Toast.LENGTH_SHORT).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}
//返回从数据库 (内容提供者)图片的路径
private String getFileFromContentUri(Uri path_img, Context context) {
String filePath = null;
if(path_img == null){
return null;
}
//到内容提供者中读取照片的路径
ContentResolver resolver = context.getContentResolver();
String[] strs = {MediaStore.MediaColumns.DATA};//图片在图片内容提供者数据库中的字段:文件的路径
Cursor cursor = resolver.query(path_img, strs, null, null, null);
if(cursor != null){
cursor.moveToFirst();//不为空,说明得到了图片,然后移动到第一张图
filePath = cursor.getString(cursor.getColumnIndex(strs[0]));
}
return filePath;
}