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.