PicCrop

Project Url: hss01248/PicCrop
Introduction: 图片裁剪的工具类,基于 uCrop 封装,分普通裁剪和头像裁剪,使用十分便捷,一行代码调用,还可自定义
More: Author   ReportBugs   
Tags:

PhotoOut

PicCrop

对 ucrop 的封装工具类,让其使用更加快捷.

在 ucrop 2.2.0(compile 'com.yalantis:ucrop:2.2.0')基础上封装,

如果以后 ucrop 以后升级,那么本工具类只需要改 CropConfig 里字段就可以.无需更改 api.

甚至,切换其他图片裁剪框架,也是改方法内部实现即可,不用更换各处已调用的 api.

说明

此项目从https://github.com/glassLake/CropUtils迁移而来,已更新 ucrop 依赖和 api 命名,原项目不再更新.

uCrop 主项目地址:

https://github.com/Yalantis/uCrop

效果图(标题栏和状态栏颜色均可自定义)

通用裁剪界面

normalCrop

头像裁剪框

avatarcrop

封装的 api


public static void cropFromGallery(Activity context)
public static void cropFromCamera(Activity context)


 //从图库中选头像
public static void cropAvatarFromGallery(Activity context)
public static void cropAvatarFromCamera(Activity context)


//需要自定义设置时使用
public static void cropFromGallery(Activity context,CropConfig config,int type)
public static void cropFromCamera(Activity context,CropConfig config,int type)


public static void onActivityResult( int requestCode, int resultCode, Intent data,Activity context, CropHandler cropHandler)


//回调接口
public interface CropHandler {
        void handleCropResult(Uri uri,int tag);
        void handleCropError(Intent data);
    }

使用

拷贝本工具类并添加 gradle:

compile 'com.yalantis:ucrop:2.2.0'

若主项目有更新,请自行更新.

代码里

点击选择图片或拍照的地方调用 cropFromxxx,

裁剪头像用 cropAvatarFromxxx

在 activity 的 onActivityResult 里调用

handleResult(this,cropHandler,requestCode,resultCode,data);

注意无需预先对 intent 做为空的判断.

tag 字段用于同一个页面多个地方接收裁剪图片的区分,如无需要,不必设置.

混淆

-dontwarn com.yalantis.ucrop**

-keep class com.yalantis.ucrop* { ; }

-keep interface com.yalantis.ucrop* { ; }

相关

本工具类介绍 blog 地址

图片加载框架 Fresco 的封装工具类 FrescoUtils

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools