Android图片加载那些事(一)-实现加载手机中的所有图片
前言
最近实验室的项目需要实现–在手机与单反的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内容提供器,轻松获得所有自己想要的格式的图片,接下来如何加载到屏幕上大家应该都知道.
- 在把每个图片的路径放到list中.
- 把list传给adapter
- 在adapter的onBindViewHolder中,通过图片路径加载图片到对应的ImageView中.
如果还有不清楚的地方,可以到我的仓库查看全部源码>图片加载.
(完~)
Android图片加载那些事(一)-实现加载手机中的所有图片相关推荐
- android 获取图片上某一个文字位置_android 获取手机中的所有图片或某一目录下的图片方法...
获取手机中的所有图片,并过滤获取某一目录下的图片.(注释掉的代码可以按照目录分组) private void getAllPhotoInfo() { new Thread(new Runnable() ...
- Android获取系统相册图片选中地址,获取手机中的所有图片地址自定义相册
一.获取手机中的值 1.首先在使用读写sd卡权限 2.获取手机中的所有图片: 注意代码中的getGalleryPhotos(getContentResolver()) 方法获取所有地址 获取所有图片地 ...
- Android图片管理组件(双缓存+异步加载)
转自:http://www.oschina.net/code/snippet_219356_18887?p=3#comments ImageManager2这个类具有异步从网络下载图片,从sd读取本地 ...
- android 图片保存电脑上,怎样简单快速的将手机里的照片和视频,批量保存到电脑?...
原标题:怎样简单快速的将手机里的照片和视频,批量保存到电脑? 手机用久了,内存怎么都不够用,因为照片和视频占据了大部分的存储空间,需不定期将照片和视频保存到电脑里,以腾出空间来,让手机有更多的空间来存 ...
- Android 项目必备(二十六)-->获取手机中所有 APP
效果图 代码 添加依赖 implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30' implementation ...
- android 图片预览动画,Android图片上传实现预览效果
首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...
- android glide的历史,Android 图片加载的那些事:为什么你的Glide 缓存没有起作用?...
前言Glide,该功能非常强大 Android 图片加载开源框架 相信大家并不陌生 正由于他的功能强大,所以它的源码非常复杂,这导致很多人望而却步 本人尝试将 Glide 的功能进行分解,并单独针对 ...
- android 图片加载库 Glide 的使用介绍
一:简介 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会 ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android图片加载框架——Glide(Glide v4)
原文地址 Android图片加载框架--Glide(Glide v4) 前言 android中图片加载框架有很多,所有框架最终达到的目都是在Android平台上以极度简单的方式加载和展示图片,如果我们 ...
最新文章
- R包库安装及数据加载:一次安装多个R包、一次加载多个R包
- linux date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
- python工具是什么-使用Python编写命令行工具有什么好的库?
- 中国IT行业盛行,互联网行业早已饱和!程序员“过多”是主要原因?
- Python中使用psutil查看内存占用的情况(内存)
- mysql5.7.17免安装版_MySQL 5.7.17 免安装版本的安装配置
- VS Code 1.37 发布,多个图标迎来全新设计
- nfc和红外线的区别_红外,蓝牙,WiFi,NFC区别及优缺点
- ZeroBrane Studio远程调试Lua程序(转)
- jsp中page指令用法详解
- 本地HTML打不开 总打开360页面,彻底解决IE浏览器打不开网页时自动跳转到hao.360.cn导航页的问题-网络教程与技术
-亦是美网络...
- 检测华为网络设备的常用命令
- 计算机英语四六级成绩查询,全国四六级英语成绩查询入口网址-http://cet.neea.edu.cn/cet...
- RDLC报表中使用自定义函数
- ToxinPred – 多肽毒性预测、突变设计和理化性质预测
- 含有单相铁芯变压器的铁磁混沌电路的分析及控制
- 关于人生中的第一篇博客
- 二战前,请想好这些事!
- 据说三分之一左右的小米盒子安装了第三方兔子桌面?
- 一批国外免费网站模板.