图片选择器及图片裁剪的实现

来源:互联网 发布:淘宝代销童装好做吗 编辑:程序博客网 时间:2024/06/02 12:32

Github地址点我

效果图

图片列表页

图片裁剪页

使用介绍

导入以后:

    new ImageSelector.Builder().with(this)                .setRequestCode("your reqest code")                .setTitle("toolbar title")                .setTitleColor("toolvar title color")                .setBackgroundColor("toolbar bgcolor")                .needCrop(true)                .cropSize(size,size)                .format(Bitmap.CompressFormat.JPEG)                .quality(60)                .start();

然后重写onActivityResult方法,

String path = intent.getStringExtra(ImageSelector.DATA);

至此已经获取到了选择(裁剪)后的图片地址

该Module中使用了一下第三方(像Rxjava本来没必要,但处于学习阶段就用了),相信你都知道这几个库。


    compile 'io.reactivex.rxjava2:rxjava:2.0.1'    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'    compile 'com.github.bumptech.glide:glide:3.7.0'    compile 'com.github.chrisbanes:PhotoView:1.2.6'

在实现本module中有两点需要注意:
1、 CropView的设计和处理
2、 图片的区域裁剪
先说第一点:
自定义一个View在onDraw中绘制五个区域,其中一个就是选中图片的区域,其他四个区域则以带有背景的块绘制,在onTouch中处理及改变选中图片区域的下x和y,详细代码请参阅源码(widgets->CropView)。
第二点:在本module中图片裁剪我采用的是截取图片view的parent view,然后用drawingcache获取Bitmap,再将该Bitmap进行裁剪(从CropView获取的Rect)。

本module目前已经解决了裁剪拍照后的图片为黑色的bug,尚未发现其它bug.

原创粉丝点击