Android之高仿微信朋友圈图片上传
碰到过很多上传图片的功能,大多都是要求是仿微信,不论是单图还是多图,更不知道是出于什么原因要去仿微信,总之,作为开发人员,很无奈,今天就把这种需求总结出来了,方便以后使用,下面就开始撸......
一、效果图
由于gif格式太大了,这里只能将就看看截图了,想看真机效果的就要查看demo了。
说明:初始界面,只显示了一张“+”号图片,此图片是自己随便找的,不要在意这种细节。
说明:点击“+”号打开的界面,默认显示图片最多的一个文件夹;底部可切换图片文件夹。这里可以设置单选模式一级是否有相机功能。
说明:切换图片文件夹截图。
说明:选中效果,右上角有当前选中的张数展示,每次最多支持选9张。
说明:上一界面确定后,可见由于张数没有够9张,所以“+”号还是显示的,可继续点击添加。
说明:添加9张时的截图,此时不显示“+”号。
说明:图片浏览界面,提供删除功能。左上角显示当前总共张数和删除数量变化。可以左右滑动预览。此处对大图进行了压缩处理。
二、思路
首页负责显示每次选择的图片,在相册列表拿到的图片集(List<String>),包含的是图片的地址,在首页的onActivityResult()方法中接收,并将其转换成图片添加到我们的首页负责显示的GridView数据集中,并做了以下两个工作,①压缩处理;②判断显示最后一个“+”号图片(具体逻辑看代码)。预览时,对于删除操作,将每次预览的图片集存为一个临时集合,删除后返回首界面刷新我们的GridView数据集。
三、代码
1,异步获取本地图片核心代码
说明:选择图片时,本地图片数量可能会很多,所以需要异步处理。
2,预览删除功能核心代码
说明:当完全删除时自动回到首页界面,如果没有完全删除,可点击完成再回到首页,其实是一样的,可根须需求修改。预览界面左上角显示当前总张数和总共可选择的数量。
3,自定义ViewPager
说明:处理触摸事件。因为图片支持双击放大和缩小功能(在图片的ScaleType属性设置为矩阵时有效)。
4,要看完整代码就在公众号里找链接,这里不贴出来了。
code小生:
完整代码已上传至github,欢迎stars,链接在公众号里。有问题可留言,或者加公众号里给出的群联系。