图片加载在所有的android的app项目中灰常的常用的,下面我就介绍如何使用imageLoader进行图片记载。
(1)使用imageLoader进行图片加载(图片加载代码)
ImageLoader.getInstance().displayImage(url, imageView);
(2)必须要先到Application进行初始化(记着要到清单文件中进行注册)
public class MyApplication extends Application {
/** SDCard路径*/
public static final String SD_PATH = Environment
.getExternalStorageDirectory().getAbsolutePath();
/** 文件夹路径*/
public static final String BASE_PATH = SD_PATH + "/listviewViewpager/";
/** 缓存图片路径*/
public static final String BASE_IMAGE_CACHE = BASE_PATH + "listviewViewpager/images/";
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
ImageLoaderConfig.initImageLoader(this, new File(BASE_IMAGE_CACHE));
}
}
图片加载ImageLoaderConfig类
import java.io.File;
import com.example.imageloaderdemo.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import android.content.Context;
import android.graphics.Bitmap;
public class ImageLoaderConfig {
/**
* 设置缓存
*/
public static void initImageLoader(Context context, File cacheFile) {
// 获取本地缓存的目录, 该目录在sd卡的根目
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(context);
// 线程池加载数量
builder.threadPoolSize(3);
// 设定线程优先级
builder.threadPriority(Thread.NORM_PRIORITY - 2);
// 设定内存为弱缓存
// builder.memoryCache(new WeakMemoryCache());
// 设定内存图片缓存大小的限制,不设置默认为屏幕的宽,即保存的每个缓存文件的最大长宽
builder.memoryCacheExtraOptions(480, 800);
// 设置硬盘缓存100mb
builder.discCacheSize(100 * 1024 * 1024);
// builder.memoryCacheSize(1 * 1024 * 1024);
builder.denyCacheImageMultipleSizesInMemory();
// 设定缓存的路径
builder.discCache(new UnlimitedDiscCache(cacheFile));
// 设定网络连接超时timeout:10s 读取网络连接超时read timeout 60s
builder.imageDownloader(new BaseImageDownloader(context, 10 * 1000, 60 * 1000));
// 设置ImageLoader的配置参
builder.defaultDisplayImageOptions(initDisplayOptions(true));
// 初始化imageLoader
ImageLoader.getInstance().init(builder.build());
}
/**
* 配置ImageLoder
*/
@SuppressWarnings("unused")
private static DisplayImageOptions initDisplayOptions(boolean isShowDefault) {
// 初始化ImageLoader
@SuppressWarnings("deprecation")
DisplayImageOptions options = new DisplayImageOptions.Builder().imageScaleType(ImageScaleType.EXACTLY)
.showStubImage(R.drawable.icon_stub) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.icon_empty) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.icon_error) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true) // 设置下载的图片是否缓存在内存中
.cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
.considerExifParams(true) // 设置图片下载前的延迟
.delayBeforeLoading(100)// delayInMillis为你设置的延迟时间
.displayer(new FadeInBitmapDisplayer(100))// 淡入
.resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位
.bitmapConfig(Bitmap.Config.RGB_565)
// .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build(); // 创建配置过得DisplayImageOption对象
return options;
}
}
(3)一定要把jar包粘贴到lib目录下面(后面的代码demo里面有的哟)这样就可以实现通过imageLoader进行图片加载了。
这里写链接内容