Android:支持多选的本地相册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:支持多选的本地相册相关的知识,希望对你有一定的参考价值。

前段时间在做一个动态发布功能,需要用到图片上传。一开始直接调用的系统相册和相机,由于系统相机不支持多选,就花点时间做了个本地相册,在此开源下。

先上截图,依次为选择相册界面、相册详情界面、查看图片大图界面

技术分享 技术分享 技术分享

相册列表按图片数量降序排序,相册详情列表按图片时间降序排序,对比了下微信和QQ的相册,读取的文件基本一致。

接下来说下相册文件遍历的思路。首先肯定不会是通过文件夹逐级遍历的,这样效率太低。查了下API发现android的系统数据库已经存储了所有的图片路径和缩略图路径(如果有),可直接通过ContentProvider来获取,获取大图的URI是

MediaStore.Images.Media.EXTERNAL_CONTENT_URI

获取缩略图的URI是

MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI

我的做法是先遍历所有大图,获取ID和路径,再通过大图的ID去查找缩略图路径,在相册中显示的都是缩略图,这样可以提高显示速度,同时减少内存开销。但是通过大图ID去查找缩略图这一步是需要消耗一点时间的,因此将它在App启动时,开启线程执行。LocalImageHelper类用以执行该操作。

待完善点:相册的初始化是放在应用启动时,初始化一次后就不再重新执行,因此假如在应用开启后,设备内添加了新的图片或删除了图片,应用内缓存的相册仍然不会改变,下一步可以在每次打开相册时和本地图片做一次对比,对新增的和删除的图片做一个更新。

Demo中使用了ImageLoader库来展示图片,使用的是Android Studio开发。

 

GitHub地址:https://github.com/LinJZong/LocalAlbum.git

以上是关于Android:支持多选的本地相册的主要内容,如果未能解决你的问题,请参考以下文章

iOS本地照片多选的实现

移动端input type=“file” 在移动端H5页面实现调用本地相册拍照录音

android之图片选择器ImageSelector的使用

MASA MAUI Plugin Android相册多选照片(使用Android Jetpack套件库)

MASA MAUI Plugin Android相册多选照片(Intent 方式)

多选的时间插件daterangepicker