android应用开发中的图片缓存系统

此文产生的原因: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开发的程序员,最头疼的事情就是图片的错位,列表的错位,列表跳动等等问题.此缓存系统就很好的解决上面的所有问题,第一次接触这样的架构可能理解起来比较吃力,这篇博文我也只是对缓存系统做了一些简单的介绍,只讲解了怎么使用,开发者们只要看一下代码片段就能解决项目中的问题,对于缓存系统的内部细节下篇博文将详细讲解。敬请期待...




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值