码迷,mamicode.com
首页 > 其他好文 > 详细

ImageLoader加载图片

时间:2016-08-23 18:44:40      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

先在MainActivity的xml文件中创建listview控件

在获取控件id,并创建适配器

在创建的适配器中

public class Myadapter extends BaseAdapter {
Context context;
String[] paths;
private ImageLoader imageLoader;
private DisplayImageOptions.Builder builder;

public Myadapter(Context context, String[] paths) {

this.context = context;
this.paths = paths;
imageLoader = ImageLoader.getInstance();
//ImageLoader加载图片过程中,对图片的设置

builder = new Builder();
//图片是否缓存在内存中
builder.cacheInMemory(true);
//图片是否缓存在sd卡中
builder.cacheOnDisk(true);
//图片的地址为空的时候显示的默认图片
// Bitmap decodeFile = BitmapFactory.decodeFile("pathName");
// builder.showImageForEmptyUri(new BitmapDrawable(decodeFile));
builder.showImageForEmptyUri(R.drawable.ic_launcher);
//图片加载失败显示的默认图片
builder.showImageOnFail(R.drawable.ic_launcher);
//图片加载过程中显示的图片
builder.showImageOnLoading(R.drawable.ic_launcher);

builder.bitmapConfig(Config.RGB_565); //每个像素点占16位
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return paths.length;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = View.inflate(context, R.layout.item, null);
holder.imageView = (ImageView) convertView
.findViewById(R.id.imageView);
convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}

//参数一:图片地址
//参数二:展示图片的控件
//参数三:加载图片过程中设置的属性
//加载图片过程中的监听
imageLoader.displayImage(paths[position], holder.imageView, builder.build(), new ImageLoadingListener() {

@Override//开始加载图片
public void onLoadingStarted(String arg0, View arg1) {
// TODO Auto-generated method stub

}

@Override//图片加载失败
public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
// TODO Auto-generated method stub

}

@Override//图片加载成功
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
// TODO Auto-generated method stub

}

@Override//图片取消加载
public void onLoadingCancelled(String arg0, View arg1) {
// TODO Auto-generated method stub

}
}) ;


return convertView;
}

class ViewHolder {
ImageView imageView;

}

}

 

创建类继承Application 

public class MyApplication extends Application {

@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();

// 初始化Imagaloader
setImagaloader();

}

private void setImagaloader() {
// 得到imageLoader
ImageLoader imageLoader = ImageLoader.getInstance();

// imageLoader构建对象
ImageLoaderConfiguration.Builder builder = new Builder(this);
// 设置磁盘缓存策略*(sd卡)
String cacheDir = Environment.getExternalStorageDirectory()
+ "/ImagaloadercacheDir";
// 磁盘缓存
builder.discCache(new UnlimitedDiskCache(new File(cacheDir)));

// 内存缓存
builder.memoryCache(new LruMemoryCache(1024 * 1024 * 20));

imageLoader.init(builder.build());

}
}

 

/**

*imageLoader使用方法

*/

ImageLoader配置

1.创建MyApplicaiton继承Appicaiton类,在onCreate方法里创建ImageLoader 配置参数并初始化到ImageLoader

两种方法
(1).

// 得到imageLoader
ImageLoader imageLoader = ImageLoader.getInstance();

// imageLoader构建对象
ImageLoaderConfiguration.Builder builder = new Builder(this);
// 设置磁盘缓存策略*(sd卡)
String cacheDir = Environment.getExternalStorageDirectory()
+ "/ImagaloadercacheDir";
// 磁盘缓存
// 设置磁盘缓存策略*(sd卡)
String cacheDir = Environment.getExternalStorageDirectory()
+ "/ImagaloadercacheDir";
builder.discCache(new UnlimitedDiskCache(new File(cacheDir)));

// 内存缓存(运行内存)
builder.memoryCache(new LruMemoryCache(1024 * 1024 * 20));

imageLoader.init(builder.build());

(2). //创建默认的ImageLoader配置参数
ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(context);
imageLoader.init(configuration);


2.在清单文件下配置(Application标签下的name属性)

android:name="com.bawei.imageLoader.MyApplication"


3.展示图片
ImageLoader imageLoader = ImageLoader.getInstance();

//创建DisplayImageOptions对图片的设置
DisplayImageOptions.Builder builder = new Builder();

//图片是否缓存在内存中
builder.cacheInMemory(true);

//图片是否缓存在sd卡中
builder.cacheOnDisk(true);

//图片加载失败显示的默认图片
builder.showImageOnFail(R.drawable.ic_launcher);

//图片加载过程中显示的图片
builder.showImageOnLoading(R.drawable.ic_launcher);

imageLoader.displayImage(paths[position], holder.imageView, builder.build());


*****缓存策略
UsingFreqLimitedMemoryCache (缓存大小超过指定值时,删除最少使的bitmap)
LRULimitedMemoryCache (缓存大小超过指定值时,删除最近最少使用的<span helvetica="" segoe="" style="font-family:">bitmap) --默认值</span>
FIFOLimitedMemoryCache (缓存大小超过指定值时,按先进先出规则删除的<span helvetica="" segoe="" style="font-family:">bitmap)</span>
LargestLimitedMemoryCache (缓存大小超过指定值时,删除最大的bitmap)
LimitedAgeMemoryCache (缓存对象超过定义的时间后删除)

 

ImageLoader加载图片

标签:

原文地址:http://www.cnblogs.com/tiankonglan/p/5777064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!