android应用开发中的图片缓存系统
2014-08-09 15:41
316 查看
此文产生的原因: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开发的程序员,最头疼的事情就是图片的错位,列表的错位,列表跳动等等问题.此缓存系统就很好的解决上面的所有问题,第一次接触这样的架构可能理解起来比较吃力,这篇博文我也只是对缓存系统做了一些简单的介绍,只讲解了怎么使用,开发者们只要看一下代码片段就能解决项目中的问题,对于缓存系统的内部细节下篇博文将详细讲解。敬请期待...
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 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
- Android应用开发之(利用好图片缓存)
- 移动应用开发(IOS/android等)中一个通用的图片缓存方案讲解
- 移动应用开发(IOS/android等)中一个通用的图片缓存方案讲解(附流程图)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android应用开发之(利用好图片缓存)
- Android 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
- Android 应用开发 之使用LruCache和DiskLruCache来在内存和SD卡中缓存图片
- Android应用开发之(你必须知道的“避免内存溢出图片处理方案”)
- Android应用开发之(图片处理技巧一)
- Android开发--在应用中调用系统的“应用程序信息(Application Info)”界面
- 做Android 系统/应用开发怎么可以不懂自动化测试
- Android应用开发之实现图片的拖拽显示
- WindRiver开发出Android系统多应用窗口显示
- Android应用开发——系统自带样式Android:theme
- 一步一步的学习android应用开发到系统底层开发之android数据解析JSON篇