在撸码的时候,我们时常会忘记 某个方法怎么用。。然后就会用“用一下会死人的”的搜索引擎。点进去一看。。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();
}
}
}
}
是不是比百度到的要好。。
欢迎提意见。。