首页 > 代码库 > 类似美图秀秀的自由拼图功能是怎么实现的?

类似美图秀秀的自由拼图功能是怎么实现的?

============问题描述============


重写imageview..但不晓得为何我重写后只能显示一张图片,其余的还是不显示?

============解决方案1============


不同格子的形式可以定义一个VIEW,最后把整个组合成一个IMAGE

============解决方案2============


其实全部功能都能在同一个View里完成,用一个ArrayList记录所有的图片及其相关信息(例如位置,旋转角度等,写一个队列去记录即可),onTouch事件每次Action_Down的时候检测点击位置是否有图片,如果有则把位于最上面的图片放到ArrayList的第一位置,接下来所有Action_Move事件全部只对第一位置的图片起作用(onDraw里按ArrayList的倒序画图片就行了,给最后一个画的图片加上Action_Move中的产生的位置、状态变化的参数),Action_UP的时候就重新记录第一位置图片变化后的信息

其中检测算法要你自己去想,因为图片旋转后4个点的位置就变了,怎么判断点击的地方有没有图片的一个角是个小难点,图片的放大缩小、移动、旋转全部在onDraw里用Matrix完成即可,最后生成图片如果跟预览图大小不同就乘个比例。

大致的思路就是这样,代码是公司的我不方便放,剩下算法、流程什么的LZ你自己思考一下就行了

类似美图秀秀的自由拼图功能是怎么实现的?