您的位置:首页 > 移动开发 > Android开发

Android 从相机/相册更改头像

2016-05-25 15:07 459 查看
功能要求:界面上定义一个ImageView,用来显示头像,然后该头像可以通过相册或者相机来更改,也就是我们平常看到的类似QQ或者微信来更改头像的功能

1.从相册选取照片来更改头像

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, FROM_ALBUM);


这里用到隐式intent来启动系统相册,type类型是image

2.用相机拍一张照片来更改头像

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), FROM_CAMERA);


重写一下activity的onActvityResult方法来获取照片

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_CANCELED) {
return;
}
Bitmap bitmap = null;
switch (requestCode) {
case FROM_ALBUM:
// 从相册获取
try {
InputStream is = getActivity().getContentResolver().openInputStream(data.getData());
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
case FROM_CAMERA:
// 拍照获取
bitmap = data.getExtras().getParcelable("data");
try {
// 把拍的照片压缩到文件里
FileOutputStream fos = new FileOutputStream(new File(PersonalFragment.PICTURE_PATH));
bitmap.compress(CompressFormat.JPEG, 100, fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
}
image.setImageBitmap(bitmap);
}


核心代码也就是上面这些了,这没有对图像进行剪切,等以后需要用到剪切功能的时候再来完善这篇博文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息