图片的三级缓存

本文详细介绍了Android中图片的三级缓存机制,包括网络缓存、本地缓存(MD5)和内存缓存(LruCache)。首先,网络缓存通过AsyncTask实现异步加载并保存至本地;接着,本地缓存利用MD5进行数据存储;最后,内存缓存使用LruCache策略,确保高效加载。
摘要由CSDN通过智能技术生成

图片的三级缓存是指网络缓存,本地缓存,以及内存缓存。

从获得数据的顺序上将,显示网络缓存得到数据,紧接着存入本地缓存,在使用是放入内存缓存。

分别介绍三个缓存方式:


1 网络缓存

网络缓存最重要的是使用AsyncTask自定义bitmapTask,

AsyncTask三个重要的函数:

doInBackground:后台耗时方法,子线程中进行

onPostExecute:doInBackground结束后,执行该方法,主线程中运行的

onProgressUpdate:更新进度,在主线程中进行调用

主要思想是后台异步下载,得到结果之后在主线程中进行更新。

package com.example.zhihuibj.utils.bitmap;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import com.lidroid.xutils.HttpUtils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.ImageView;

/*
 * 网络缓存
 * 
 */
public class NetCacheUtils {

	
	/*
	 * 
	 */
	private MyLoaclCacheUtils mLocalCacheUtils;
	private MemoryCacheUtils mMemoryCacheUtils;
	public NetCacheUtils(MyLoaclCacheUtils LocalCacheUtils, MemoryCacheUtils MemoryCacheUtils) {
		mLocalCacheUtils=LocalCacheUtils;
		mMemoryCacheUtils=MemoryCacheUtils;
	}

	
	public void getBitmapFromNet(ImageView ivPic, String url) {
		new BitmapTask().execute(ivPic,url);// 传入的参数在doInBackground中获取,启动AsyncTask
		
	}
	/*
	 * 第一个参数:doInBackground 参数
	 * 第二个参数:onProgressUpdate 参数
	 * 第三个参数:onPostExecute 参数
	 */
	class BitmapTask extends AsyncTask<Object, Void, Bitmap>{

		private ImageView ivPic;
		private String url;

		/*
		 * 后台耗时方法,子线程中进行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值