个人资料,修改头像
效果图
DEMO地址:http://download.csdn.net/detail/wxk105/9737763
项目中包括了:头像上传源码;MyBitmapUtils,图片的各种处理工具类;MyLogUtils,日志打印处理工具类;MyToastUtils土司工具类;SpUtils轻量级数据存储工具类;基类BaseActivity的封装等;
打开系统相册:
/**
* 打开系统相册
*/
private void headIconDialog() {
Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT);
openAlbumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(openAlbumIntent, PHOTOZOOM);
}
图片选择裁剪成功后返回:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri uri = null;
Intent intent = null;
switch (requestCode) {
case PHOTOZOOM:// 相册
if (resultCode != RESULT_OK) {
return;
}
if (data == null) {
return;
}
uri = data.getData();
Bitmap userbitmap = MyBitmapUtils.decodeUriAsBitmap(this, uri);
if (userbitmap == null) {//这里用于校验图片是否有误(可能是破损图)
MyToastUtils.showShortToast(getApplicationContext(), "图片有误,请重新选择!");
return;
}
File user_head = MyBitmapUtils.saveBitmap(MyBitmapUtils.zoomImgKeepWH(userbitmap, 400, 400, true), "user_head.jpeg");
intent = new Intent(this, CropImageAct.class);
intent.putExtra("path", Environment.getExternalStorageDirectory() + "/" + "user_head.jpeg");
MyLogUtils.info("拍照图片地址是:" + Environment.getExternalStorageDirectory() + "/" + "user_head.jpeg");
startActivityForResult(intent, IMAGE_COMPLETE);
break;
case IMAGE_COMPLETE:// 完成
if (data != null) {
String temppath = data.getStringExtra("path");
// toloadfile(temppath);//这里上传头像到后台接口
final Bitmap bitmap = BitmapFactory.decodeFile(temppath);
iv.setImageBitmap(bitmap);
MyLogUtils.info(data + "裁剪完成地址。。。。");
}
break;
}
}
项目代码比较简单,并且已经封装好,只要将相应的view包直接复制到项目中,即可使用。尤其这里的MybitmapUtils是已经封装好的,可识别破损图片。