//Activity布局
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
//list_item布局
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="200dp" />
//Activity
public class MainActivity extends Activity {
private ListView lv;
//最好是自己多找一些图片
String[]paths=new String[]{
"http://pic42.nipic.com/20140607/18358876_140318247306_2.jpg",
"http://pic1.nipic.com/2008-12-25/2008122510134038_2.jpg",
"http://img1.3lian.com/2015/w7/98/d/22.jpg",
"http://img1.3lian.com/2015/w7/98/d/1.jpg",
"http://img1.3lian.com/2015/w7/98/d/2.jpg",
"http://img1.3lian.com/2015/w7/98/d/3.jpg",};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv=(ListView) findViewById(R.id.listView);
lv.setAdapter(new MyAdapter(this,paths));
}
//MyAdapter
public class MyAdapter extends BaseAdapter {
private final Context context;
private final String[] paths;
private ImageLoader imageLoader;
private DisplayImageOptions.Builder builder;
public MyAdapter(Context context, String[] paths) {
this.context = context;
// TODO Auto-generated constructor stub
this.paths = paths;
imageLoader = ImageLoader.getInstance();
//加载图片的过程中,对图片的设置
builder = new Builder();
//图片是否缓存在内存中
builder.cacheInMemory(true);
//图片是否缓存在sd卡中
builder.cacheOnDisk(true);
//图片的地址为空的时候显示的默认图片
builder.showImageForEmptyUri(R.drawable.ic_launcher);
//图片加载失败显示的默认图片
builder.showImageOnFail(R.drawable.ic_launcher);
//图片加载过程中显示的图片
builder.showImageOnLoading(R.drawable.ic_launcher);
//每个像素点占16位
builder.bitmapConfig(Config.RGB_565);
}
@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.list_item, null);
holder.iv=(ImageView) convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
}else{
holder=(ViewHolder) convertView.getTag();
}
//参数一:图片地址
//参数二:展示图片的控件
//参数三:加载图片过程中设置的属性
//参数四:加载图片过程中的监听
imageLoader.displayImage(paths[position], holder.iv, 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) {
}
//图片加载成功
@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{
private ImageView iv;
}
}
//创建一个类 MyApplication 继承Application
public class MyApplication extends Application{
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//初始化imageloader
setImageloader();
}
private void setImageloader() {
//得到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());
}
}