android用户头像截取

一般的app如果有用户概念的,肯定会涉及到用户头像自定义的功能,用户需要的头像要么从本地图库里面获取后截取,要么直接拍照然后截取,请大家看一下demo

这里写图片描述

这里写图片描述
这里拍照用的模拟器,效果不好大家请不要介意

下面将针对这2种方法进行讲解。

步骤
1、点击头像弹出pop框,可以提供选择是拍照还是从图库选择
2、拍照和图库选择完图片之后,进行图片缩放,选择适合的图片准备截取
3、获取截取的图片
4、图片截取完之后,修改成圆形头像
5、保存头像以便上传

下面逐步讲解代码
1、拍照和图库选择图片
a)拍照
执行拍照前,应该先判断SD卡是否存在,如果存在,则直接跳转到拍照界面进行拍照

if (state.equals(Environment.MEDIA_MOUNTED)) {
Intent getImageByCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
/***
* 需要说明一下,以下操作使用照相机拍照,拍照后的图片会存放在相册中的
* 这里使用的这种方式有一个好处就是获取的图片是拍照后的原图
* 如果不使用ContentValues存放照片路径的话,拍照后获取的图片为缩略图不清晰
*/
ContentValues values = new ContentValues();
photoUri=getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
                        getImageByCamera.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);                        startActivityForResult(getImageByCamera, REQUEST_CODE_TAKE_PHOTO);
}

这里需要注意的地方是,必须用ContentValues存放照片路径,不然拍照后获取的图片为缩略图不清晰

b)从图库获取图片

 // 选择照片的时候也一样,我们用Action为Intent.ACTION_GET_CONTENT,
 // 有些人使用其他的Action但我发现在有些机子中会出问题,所以优先选择这个
Intent intent = new Intent(Intent.ACTION_PICK,                         android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, REQUEST_CODE_USER_ALBUM);

2、选择完图片之后,进行图片缩放,选择适合的图片准备截取
上面选择完图片,我们用了startActivityForResult跳转回界面,在这里我们需要用onActivityResult来接收

protected void onActivityResult(
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值