android裁剪图片

来源:互联网 发布:微博系统源码 编辑:程序博客网 时间:2024/06/12 20:14

直接上主要代码:

        Intent intent = new Intent("com.android.camera.action.CROP");        intent.setDataAndType(inUri, "image/*");  // 要裁剪的图片URI        intent.putExtra("crop", "true");        intent.putExtra("aspectX", 1);  // aspectX:aspectY 裁剪比例        intent.putExtra("aspectY", 1);        intent.putExtra("outputX", 1024);  // 输出图片大小        intent.putExtra("outputY", 1024);        intent.putExtra("return-data", false);  // 是否以bitmap方式返回,缩略图可设为true,大图一定要设为false,返回URI        intent.putExtra("noFaceDetection", true);        intent.putExtra(MediaStore.EXTRA_OUTPUT, outUri);  // 输出的图片的URI        intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());// 返回格式        intent.putExtra("scale", true);// 去黑边        intent.putExtra("scaleUpIfNeeded", true);// 去黑边        startActivityForResult(intent, REQUEST_CROP); // activity result

代码很简单,有个很致命的问题,由于安卓手机的碎片化很严重,导致在某些手机上的表现形式不一样(比如截图框,有点手机上是圆的,有的是方的),有的手机上不能保存裁剪后的图片,最后舍弃了这个最简单的方法,自定义一个裁剪的控件,详见:

Android 高仿微信头像截取 打造不一样的自定义控件

站在大神的肩膀上做出了裁剪图片的控件,但是他这个也有问题,加载大图的时候,耗费太大内存,导致图片显示不出来。后来先压缩了图片,才能正常显示大图来裁剪。



1 0