package com.example.imageloadertest;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ListView lv;
private String[] imageData;
private DisplayImageOptions options;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
imageData=Constants.images;
//设置DisplayImageOptions
DisplayImageOptions.Builder builder=new DisplayImageOptions.Builder();
builder.showImageForEmptyUri(R.drawable.ic_empty);
builder.showImageOnFail(R.drawable.ic_error);
builder.showImageOnLoading(R.drawable.ic_stub);
builder.cacheInMemory(true);
builder.cacheOnDisc(true);
builder.displayer(new RoundedBitmapDisplayer(20)); // 设置成圆角图片
options=builder.build();
lv.setAdapter(new MyAdapter());
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return imageData.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
ViewHolder holder;
if(arg1==null){
holder=new ViewHolder();
arg1=View.inflate(MainActivity.this, R.layout.lv_item, null);
holder.img=(ImageView) arg1.findViewById(R.id.imageView1);
holder.tvv=(TextView) arg1.findViewById(R.id.textView1);
arg1.setTag(holder);
}else{
holder=(ViewHolder) arg1.getTag();
}
holder.tvv.setText("item"+arg0);
//加载图片
ImageLoader.getInstance().displayImage(imageData[arg0], holder.img, options);
return arg1;
}
class ViewHolder{
private ImageView img;
private TextView tvv;
}
}
}
///
package com.example.imageloadertest;
import java.io.File;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import android.app.Application;
public class MyApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
//1.创建ImageLoaderConfiguration
ImageLoaderConfiguration.Builder builder=new ImageLoaderConfiguration.Builder(getApplicationContext());
builder.threadPoolSize(3);//设置线程池的数量
builder.threadPriority(Thread.NORM_PRIORITY-2);//设置线程的优先级
builder.memoryCacheSize(2*1024*1024);//设置缓存空间2M(内存中)
builder.memoryCacheExtraOptions(480, 800);// 设置缓存中内存图片的宽高
builder.diskCacheSize(50*1024*1024);//设置缓存空间50M(磁盘中)
builder.diskCache(new UnlimitedDiscCache(new File("")));//自定义文件的缓存路径
builder.diskCacheFileNameGenerator(new Md5FileNameGenerator());//磁盘缓存的文件名的命名方式//一般使用默认值 (获取文件名称的hashcode然后转换成字符串)或MD5 new Md5FileNameGenerator()源文件的名称同过md5加密后保存
builder.denyCacheImageMultipleSizesInMemory();//加载同一URL图片时,imageView从小变大时,从内存缓存中加载
builder.tasksProcessingOrder(QueueProcessingType.LIFO);
ImageLoaderConfiguration config=builder.build();
//2.初使化ImageLoader
ImageLoader.getInstance().init(config);
}
}
///
package com.example.imageloadertest;
public class Constants {
public static final String IMAGES = "CONSTANTS.IMAGES";
public static final String IMAGE_POSITION = "CONSTANTS.IMAGE_POSITION";
public static final String[] images = new String[] {
"http://cdn.duitang.com/uploads/blog/201308/18/20130818150526_Ru2Bk.thumb.600_0.png",
"http://www.bkill.com/u/info_img/2012-09/02/2012083116140522302.jpg",
"http://www.it165.net/uploadfile/2011/1218/20111218070928328.jpg",
"http://www.meilinvsheng.com/upload_files/article/135/1_20121202211215_fnoal.jpg"
};
}