文件名称:PhotoCropper-可以解决大图裁剪OOM异常的图片裁剪控件.zip
文件大小:1.02MB
文件格式:ZIP
更新时间:2022-10-13 21:37:36
开源项目
可以解决大图裁剪OOM异常的图片裁剪控件。这是因为它支持对图片进行压缩。你可以从相机拍照或相册中选择要裁剪的图片。项目地址:https://github.com/ryanhoo/PhotoCropper 效果图:如何使用:创建参数实例CropParams来设置裁剪参数,如图片保存路径、是否裁剪、是否压缩等。mCropParams = new CropParams(this); mCropParams.refreshUri();//设置默认的保存路径,你也可以使用mCropParams.uri = ...自定义指定 mCropParams.enable = true;//是否开启裁剪 mCropParams.compress = false;//是否压缩图片如果你的图片比较大或图片不裁剪或裁剪后的图片仍然很大,你最好开启图片压缩mCropParams.compress = true,免得内存溢出。2. 进入图片选择、拍照或裁剪Intent intent = CropHelper.buildCameraIntent(mCropParams); startActivityForResult(intent, CropHelper.REQUEST_CAMERA);//拍照获取图片 //startActivityForResult(intent, CropHelper.REQUEST_CROP);//从图库中获取图片3. 重写activity的onActivityResult()方法,接收图片选择或裁剪的返回,并分发事件给CropHandler@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { CropHelper.handleResult(this, requestCode, resultCode, data);//分发事件给CropHandler }4. 让activity实现CropHandler接口,接收处理事件@Override public CropParams getCropParams() { return mCropParams; } @Override public void onPhotoCropped(Uri uri) {//接收裁剪后的图片 // Original or Cropped uri System.out.println("CropHandler:Crop Uri in path=" uri.getPath()); if (!mCropParams.compress) mImageView.setImageBitmap(BitmapUtil.decodeUriAsBitmap(this, uri)); } @Override public void onCompressed(Uri uri) {//接收压缩后的图片 System.out.println("CropHandler:Compressed Uri in path=" uri.getPath()); // Compressed uri mImageView.setImageBitmap(BitmapUtil.decodeUriAsBitmap(this, uri)); } @Override public void onCancel() {//取消裁剪或图片选择 Toast.makeText(this, "Crop canceled!", Toast.LENGTH_LONG).show(); } @Override public void onFailed(String message) {//图片选择或裁剪失败 Toast.makeText(this, "Crop failed: " message, Toast.LENGTH_LONG).show(); } @Override public void handleIntent(Intent intent, int requestCode) {//重新转到裁剪确认界面 System.out.println("CropHandler:handleIntent"); startActivityForResult(intent, requestCode); }5 最后最好在onDestroy中清理下缓存@Override protected void onDestroy() { CropHelper.clearCacheDir(); super.onDestroy(); }
【文件预览】:
PhotoCropper-master
----gradlew.bat(2KB)
----gradlew(5KB)
----images()
--------photo-cropper-demonstration.gif(1009KB)
----gradle.properties(853B)
----library()
--------proguard-rules.pro(662B)
--------src()
--------.gitignore(7B)
--------build.gradle(3KB)
----app()
--------proguard-rules.pro(662B)
--------src()
--------.gitignore(7B)
--------build.gradle(635B)
----gradle()
--------wrapper()
----.gitignore(662B)
----README.md(5KB)
----settings.gradle(27B)
----build.gradle(573B)