Android仿微信图片编辑库,你想要的功能这里都有
2018-01-14 23:01
1466 查看
最近项目需要,写了一个和微信中图片编辑功能类似的图片编辑库,除去问题操作上摈弃掉不方便的手势操作外,其余微信中的核心功能全部一致,保留了微信中涂鸦、马赛克、文字等随时随着图片缩放的功能,这点是我所找的库都不提供的功能,也是我从零去完成这个图片编辑库的原因。
Github地址:https://github.com/kareluo/Imaging
然后绘制到Canvas对象上,并给画笔设定Width和Color。
文字的缩放、旋转和删除都不是使用手势方式,而是使用按钮,这种方式比手势的易用性高很多。
这里每个文字贴图都是一个子控件,相对于这个图片编辑的底图来说,底图其实是一个ViewGroup,这个子控件在ViewGroup里面旋转缩放,摆放位置等。具体实现这里不说了,三言两语很难说清。
当裁剪出某个区域后并不会将Bitmap对象进行裁剪,而是调整显示区域使其模拟出裁剪的效果,以备还原到原图,如下:
Github地址:https://github.com/kareluo/Imaging
Github地址:https://github.com/kareluo/Imaging
功能说明
这里针对其中的几个主要功能点进行一些简要说明,如果大家想要详细了解可以查看Demo代码,已经类库的源码。1、涂鸦功能
涂鸦的路径是使用Path对象记录手势路径,switch(event.getActionMasked()) { case MotionEvent.ACTION_DOWN: path.reset(); path.moveTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE: path.lineTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_UP: // 添加到Path列表中 break; }
然后绘制到Canvas对象上,并给画笔设定Width和Color。
2、马赛克功能
马赛克的路径部分和涂鸦相同,这里不用多说,主要是马赛克如何生成,一个很简单的办法就是先把整张图进行缩小,然后将其放大至现有大小绘制出时,其就会很模糊,但是这个模糊不是马赛克效果,这时只需要为其指定一个Paint,并将Paint对象的filterBitmap设置为false即可。然后在和路径合成便成立马赛克笔触。// 保存图层 paint.setFilterBitmap(false); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); // 绘制路径 // 绘制马赛克全图 // 恢复图层
3、文字功能
文字功能相比涂鸦和马赛克来说其实难很多,这里使用的方式和微信的略有不同,如下:文字的缩放、旋转和删除都不是使用手势方式,而是使用按钮,这种方式比手势的易用性高很多。
这里每个文字贴图都是一个子控件,相对于这个图片编辑的底图来说,底图其实是一个ViewGroup,这个子控件在ViewGroup里面旋转缩放,摆放位置等。具体实现这里不说了,三言两语很难说清。
4、裁剪与旋转
当时旋转是最后做的,旋转的加入让整个项目陷入崩溃边缘,所有操作都强行加入了选择这个后来者,头大,裁剪相对还不算问题,主要是动画的问题比较多,因为要做到和微信极度接近,裁剪和旋转动画的效果也是基本还原微信效果。当裁剪出某个区域后并不会将Bitmap对象进行裁剪,而是调整显示区域使其模拟出裁剪的效果,以备还原到原图,如下:
// 裁剪区域 canvas.clipRect(mClipWin.isClipping() ? mFrame : mClipFrame);
后记
目前这个类库刚完成全部核心功能,很多细节还在不断完善中。Github地址:https://github.com/kareluo/Imaging
相关文章推荐
- Android一键转发图片多张图片到微信,朋友圈功能实现
- Android仿微信图片上传带加号且超过最大数隐藏功能
- Android之仿微信发朋友圈图片选择功能
- Android 微信图片分享功能
- Android仿微信选择图片和拍照功能
- Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有
- Android 分享功能之 微信 图片分享
- Android开发 自定义ViewGroup 实现微信九格图功能(图片不同排布不同) 和 一种图片点击变暗效果
- Android 超高仿微信图片多选、单选,图片剪切,图片预览,拍照等功能
- android 实现微信分享多张图片的功能
- Android中使用GridView实现仿微信图片上传功能(附源代码)
- Android自定义图片选取器,类似微信样式,自带裁剪功能,适配Android7.0
- Android高仿微信图片选择功能的PhotoPicker
- Android高仿微信图片多选功能
- Android GridView扩展仿微信微博发图动态添加删除图片功能
- Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有
- Android之仿微信发朋友圈图片选择功能
- ANDROID GRIDVIEW仿微信图片多选功能_显示本地相册图片多选效果
- Android 使用GridView+仿微信图片上传功能(附源代码)
- Android开发:仿微信和QQ空间发说说相册读取、拍照、图片裁剪和图片上传服务器等功能的实现