要使ImageLoader先要从网上下载imageloader的jar包导入项目中。然后重写application,并初始化配置
public class GAPP extends Application {
public static Context sContext;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
sContext = getApplicationContext();
//图片管理类
ImageManager.init(getApplicationContext());
}
}
在清单文件中设置权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name="yong.desk.weather.GAPP"
图片管理类
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.widget.ImageView;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.weather.forecast.R;
public class ImageManager {
private static final DisplayImageOptions options = new DisplayImageOptions.Builder()
// R.drawable.default_image默认图片
.showImageOnLoading(R.drawable.default_image)
.showImageForEmptyUri(R.drawable.default_image)
.showImageOnFail(R.drawable.default_image).cacheInMemory(true)
.cacheOnDisc(false).considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565).build();
public static void init(Context context) {
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context)
.memoryCacheExtraOptions(480, 800)
.discCacheExtraOptions(480, 800, CompressFormat.PNG, 75, null)
.threadPoolSize(5)
.threadPriority(Thread.MIN_PRIORITY + 4)
// 一次性加载几张图片
.tasksProcessingOrder(QueueProcessingType.FIFO)
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.discCacheSize(50 * 1024 * 1024) // 缓冲大小
.discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(context)) // default
.build();
ImageLoader.getInstance().init(config);
}
/**
*
* @param uri
* ("http://site.com/image.png",
* "file:///mnt/sdcard/image.png",
* "drawable://R.drawable.bg_cloudy_day")
* @param imageView
*/
public static void loadImage(String uri, ImageView imageView) {
ImageLoader.getInstance().displayImage(uri, imageView, options);
}
}
具体的调用
//本地图片显示getImagePath(position)为本地图片的路径,holder.image为imageView控件
ImageManager.loadImage("file://" + getImagePath(position),
holder.image);
//资源图片显示mImages[position]为资源图片的路径,holder.image为imageView控件
ImageManager.loadImage("drawable://" + mImages[position],
holder.image);
//网络图片显示url[position]为网络图片的地址,holder.image为imageView控件
ImageManager.loadImage(url[position],holder.image);