前言

最近实验室的项目需要实现–在手机与单反的wifi连接之后,加载单反中的图片.这其中就涉及到我们在Android开发中经常遇到的功能-图片加载.
关于图片加载,不同程度的实现也会遇到不同程度的问题
可能起初我们只是想加载出来一张图片,这个问题很好解决.
后来我们可能还要加载大量的图片(几百KB的那种)到页面上,这个也不是很难…
但是如果想要优雅的做好符合用户体验的图片加载,如何做好缓存.下拉刷新…都是需要做的.

所以最近会写一些关于图片加载的系列博文,希望对大家有所帮助,

前两天做了一个demo,试了试加载手机里的所有图片,算作这个系列的开端.

效果图


这是加了日期分组的效果,这个我们下一篇再讲怎么把按照日期分组的.
查找手机里所有图片的 关键代码:

/*** 查询手机里所有的图片*/public void initAllImgInThePhone() {String[] projection = {MediaStore.Images.Media.DATA,MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media.SIZE};//全部图片String where = MediaStore.Images.Media.MIME_TYPE + "=? or "+ MediaStore.Images.Media.MIME_TYPE + "=? or "+ MediaStore.Images.Media.MIME_TYPE + "=?";//指定格式String[] whereArgs = {"image/jpeg", "image/png", "image/jpg"};//查询Cursor cursor = getContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, where, whereArgs,MediaStore.Images.Media.DATE_MODIFIED + " desc ");List<String> dateList = new ArrayList<>();//存放图片的路径while (cursor.moveToNext()) {String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME))//获取图片名.long size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));//获取文件大小.byte[] data = cursor.getBlob(cursor.getColumnIndex(MediaStore.Images.Media.DATA));//图片在手机里的路径String dataStr = new String(data, 0, data.length - 1);//路径转换成字符串File file = new File(dataStr);long time = file.lastModified(); //记录此图片的上次修改时间SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String dateStr = sdf.format(time); // 2019-04-10}}

通过contentResolver内容提供器,轻松获得所有自己想要的格式的图片,接下来如何加载到屏幕上大家应该都知道.

  1. 在把每个图片的路径放到list中.
  2. 把list传给adapter
  3. 在adapter的onBindViewHolder中,通过图片路径加载图片到对应的ImageView中.

如果还有不清楚的地方,可以到我的仓库查看全部源码>图片加载.
(完~)

Android图片加载那些事(一)-实现加载手机中的所有图片相关推荐

  1. android 获取图片上某一个文字位置_android 获取手机中的所有图片或某一目录下的图片方法...

    获取手机中的所有图片,并过滤获取某一目录下的图片.(注释掉的代码可以按照目录分组) private void getAllPhotoInfo() { new Thread(new Runnable() ...

  2. Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册

    一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...

  3. Android图片管理组件(双缓存+异步加载)

    转自:http://www.oschina.net/code/snippet_219356_18887?p=3#comments ImageManager2这个类具有异步从网络下载图片,从sd读取本地 ...

  4. android 图片保存电脑上,怎样简单快速的将手机里的照片和视频,批量保存到电脑?...

    原标题:怎样简单快速的将手机里的照片和视频,批量保存到电脑? 手机用久了,内存怎么都不够用,因为照片和视频占据了大部分的存储空间,需不定期将照片和视频保存到电脑里,以腾出空间来,让手机有更多的空间来存 ...

  5. Android 项目必备(二十六)-->获取手机中所有 APP

    效果图 代码 添加依赖 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30' implementation ...

  6. android 图片预览动画,Android图片上传实现预览效果

    首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...

  7. android glide的历史,Android 图片加载的那些事:为什么你的Glide 缓存没有起作用?...

    前言Glide,该功能非常强大 Android  图片加载开源框架 相信大家并不陌生 正由于他的功能强大,所以它的源码非常复杂,这导致很多人望而却步 本人尝试将 Glide 的功能进行分解,并单独针对 ...

  8. android 图片加载库 Glide 的使用介绍

    一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...

  9. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  10. Android图片加载框架——Glide(Glide v4)

    原文地址 Android图片加载框架--Glide(Glide v4) 前言 android中图片加载框架有很多,所有框架最终达到的目都是在Android平台上以极度简单的方式加载和展示图片,如果我们 ...

最新文章

  1. R包库安装及数据加载:一次安装多个R包、一次加载多个R包
  2. linux date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
  3. python工具是什么-使用Python编写命令行工具有什么好的库?
  4. 中国IT行业盛行,互联网行业早已饱和!程序员“过多”是主要原因?
  5. Python中使用psutil查看内存占用的情况(内存)
  6. mysql5.7.17免安装版_MySQL 5.7.17 免安装版本的安装配置
  7. VS Code 1.37 发布,多个图标迎来全新设计
  8. nfc和红外线的区别_红外,蓝牙,WiFi,NFC区别及优缺点
  9. ZeroBrane Studio远程调试Lua程序(转)
  10. jsp中page指令用法详解
  11. 本地HTML打不开 总打开360页面,彻底解决IE浏览器打不开网页时自动跳转到hao.360.cn导航页的问题-网络教程与技术 -亦是美网络...
  12. 检测华为网络设备的常用命令
  13. 计算机英语四六级成绩查询,全国四六级英语成绩查询入口网址-http://cet.neea.edu.cn/cet...
  14. RDLC报表中使用自定义函数
  15. ToxinPred – 多肽毒性预测、突变设计和理化性质预测
  16. 含有单相铁芯变压器的铁磁混沌电路的分析及控制
  17. 关于人生中的第一篇博客
  18. 二战前,请想好这些事!
  19. 据说三分之一左右的小米盒子安装了第三方兔子桌面?
  20. 一批国外免费网站模板.

热门文章

  1. EPS数据导入CASS中
  2. LightTools.v5.1_完整好用版本\
  3. 让VSCode字体性感起来
  4. ITIL4定义的四大价值维度
  5. LinkedIn开源数据发现和管理工具 WhereHows
  6. RS码编译matlab仿真2
  7. Linux测网速工具,Linux中上下行网速测试工具 speedtest-cli
  8. XAP部署错误代码大全
  9. 打造自己的U盘工具箱
  10. Maven的介绍与安装步骤