Android系统相册换头像——最短的代码

在撸码的时候,我们时常会忘记 某个方法怎么用。。然后就会用“用一下会死人的”的搜索引擎。点进去一看。。OMG。这些消灭人性的代码。。烦杂上天。

明明刺客一句话搞定的代码撸出很多行。。更或者摆上 一个神奇的工具类 。。。让人装耳挠腮。。

索性,直接摒弃掉,自己去try。

下面直接看下网上怎么写的:

*********************************************对比**************************************************************************

1. 打开系统相册

直接调用系统相册,再对返回数据进行操作

public static void pickImageFromAlbum(final Activity activity){ 
	//隐式调用,可能出现多种选择 
	Intent intent = new Intent(); 
	intent.setAction(Intent.ACTION_GET_CONTENT);
	intent.setType("image/*");
	activity.startActivityForResult(intent,REQUEST_CODE_FROM_ALBUM);
}




2. 对返回图片Uri进行裁剪工作

对于拍照返回,直接对返回图片进行裁剪即可;而对于选择相册返回,我们需要先将原图片复制到我们自定义的目录下(避免裁剪操作对原图片的质量产生影响),然后对复制的图片进行裁剪

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);

  switch (requestCode){
   case ImageUtils.REQUEST_CODE_FROM_ALBUM: {

    if (resultCode == RESULT_CANCELED) { //取消操作
     return;
    }

    Uri imageUri = data.getData();
    ImageUtils.copyImageUri(this,imageUri); //复制图片
    ImageUtils.cropImageUri(this, ImageUtils.getCurrentUri(), 200, 200); //裁剪图片
    break;
   }
   case ImageUtils.REQUEST_CODE_FROM_CAMERA: {

    if (resultCode == RESULT_CANCELED) { //取消操作
     ImageUtils.deleteImageUri(this, ImageUtils.getCurrentUri()); //删除Uri
    }

    ImageUtils.cropImageUri(this, ImageUtils.getCurrentUri(), 200, 200); //裁剪图片
    break;
   }
   case ImageUtils.REQUEST_CODE_CROP: {

    if (resultCode == RESULT_CANCELED) { //取消操作
     return;
    }

    Uri imageUri = ImageUtils.getCurrentUri();
    if (imageUri != null) {
     imageView.setImageURI(imageUri); //显示图片
    }
    break;
   }
   default:
    break;
  }
 }
好吧就这样,不知大家怎么看这样的代码。我看着很烦杂。我不是什么大神,只是自己喜欢摸索,不对的地方还望大家批评指正。

下面贴出我自己的代码

调用

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.imgUser:
                startActivityForResult(new Intent(Intent.ACTION_PICK).setType("image/*"), 66);
                break;
        }
    }

看处理

  @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 66) {
            if (data != null) {
                try {
                    imgUSer.setImageBitmap(MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), data.getData()));
                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }
    }



是不是比百度到的要好。。

欢迎提意见。。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值