android应用开发中的图片缓存系统
来源:互联网 发布:oracle sql调优技巧 编辑:程序博客网 时间:2024/05/17 07:49
此文产生的原因:1.在开发android应用的时候,往往因图片没处理好的原因导致拖延开发效率,并且时常出现OOM.2.如今的android应用是富文本应用,文本,图片,视频,语音等,基本上每个应用都会涉及到这4中的几种或全部.然而在应用中出现最频繁的富文本就是图片.所以处理好图片是非常重要的一个环节.3.好的应用的就是能够给应用很好的用户体验,图片这一环节没处理好直接影响到用户的体验,情节严重的情况下用户直接将app remove,进而导致用户的丢失,结果不堪设想.4.如今关于图片缓存的文章非常多,解决方案也非常多,在百度或其他搜索引擎一搜各种解决方案.这时你可能不能区分最佳的解决方案,此文将带领你来深刻理解图片缓存系统的最佳解决方案,以及实战.
1.缓存系统的局部整体架构:
这张静态类图,只是缓存系统整体架构,其中有些类,没有在这张类图中体现出来,只要能够理解这张图基本上就能够绘制出其他相应的类图.以及类与类之间的关系,下篇博文将进一步更加深入的分析缓存系统,以及如何定制自己的缓存系统.
2.实战
1.使用缓存系统实现从assets下获取图片
a.代码片段:
BitmapUtils bitmapUtils = new BitmapUtils(this);bitmapUtils.display(imageView, "assets/ico.png")
b.效果:
2.从sdcard中获取
a.代码片段:
BitmapUtils bitmapUtils = new BitmapUtils(this);bitmapUtils.display(imageView, Environment.getExternalStorageDirectory()+"/1.jpg")b.效果:
3.从网络获取
a.代码片段
BitmapUtils bitmapUtils = new BitmapUtils(this);bitmapUtils.display(imageView,"http://192.168.0.101:8080/Chat/2.jpg")b.效果
4.ListView以及相似控件图片的显示(Gridview等)
a.代码片段
<span style="font-size:18px;"> List<Bmp> bmps = new LinkedList<Bmp>(); for(int i=1;i<=15;i++){ Bmp bmp = new Bmp(); bmp.url = BASE_URL+i+".jpg"; bmp.name = i+".jpg"; bmps.add(bmp); } mAdapter = new BmpAdapter(this, bmps, bitmapUtils); mListView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true)); mListView.setAdapter(mAdapter);</span>
b.效果
总结:
在项目开发中常用来显示图片的控件是ListView,GridView,其中对于刚刚接触android开发的程序员,最头疼的事情就是图片的错位,列表的错位,列表跳动等等问题.此缓存系统就很好的解决上面的所有问题,第一次接触这样的架构可能理解起来比较吃力,这篇博文我也只是对缓存系统做了一些简单的介绍,只讲解了怎么使用,开发者们只要看一下代码片段就能解决项目中的问题,对于缓存系统的内部细节下篇博文将详细讲解。敬请期待...
- android应用开发中的图片缓存系统
- Android中的图片缓存
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- android应用图片缓存解决方法
- Android图片中的三级缓存
- Android图片中的三级缓存
- Android中的图片三级缓存
- Android图片中的三级缓存
- Android图片中的三级缓存
- android开发oom,图片缓存
- Android开发图片三级缓存
- Android应用中的数据缓存
- android跨进程事件注入(程序模拟用户输入)
- 二十二:微信公众帐号开发-符号表情的发送(下)
- 播放器 倒计时 闹钟 日期 分秒 时间算法
- leetcode 刷题之路 56 Subsets (非递归解法)
- 14、B树、B+树的概念及用途
- android应用开发中的图片缓存系统
- krpano 教程 - display 标签中文说明
- 【ORACLE】AWR报告的生成和简单分析方法
- 新浪 ip 地址库
- hdu-2814-Interesting Fibonacci-斐波那契循环节
- 关于 xcode5 每次修改代码,都要先clean,重新编译才有效的解决方法汇总
- 获取任务栏所有正在运行程序
- quartus时序分析文档理解与翻译(2) ——一个设置约束的例程
- IP地址API