您的位置:首页 > 移动开发 > Android开发

android studio使用imageLoader加载图片到listview上

2015-07-25 20:48 543 查看
一个小的demo,对于imageloader不了解的可以点击

/article/10537351.html下查看

废话不说看代码~

自定义MyApplication

/**
* Created by 不告诉你 on 15/7/25.
*/
public class MyApplictation extends Application {
@Override
public void onCreate() {
super.onCreate();
//创建默认的imageloader配置函数
ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
.memoryCacheExtraOptions(500,500)//缓存文件最大宽高
.threadPoolSize(3) //线程池的加载数量
.threadPriority(Thread.NORM_PRIORITY-2)//优先级定义
.memoryCacheSize(2*1024*1024)
.diskCacheSize(50*1024*1024) //50mb sd卡(本地)缓存最大值
.tasksProcessingOrder(QueueProcessingType.LIFO)
.imageDownloader(new BaseImageDownloader(this,5*100,30*1000))
.denyCacheImageMultipleSizesInMemory()
.writeDebugLogs()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.build();
//初始化imageloader
ImageLoader.getInstance().init(configuration);
}
}


主activity:

public class MainActivity extends AppCompatActivity {
private  String imageUrl="http://pic.nipic.com/2007-11-09/2007119121849495_2.jpg";
private  List<String>  list=null;

private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.listview);

}

@Override
protected void onStart() {
super.onStart();
list=new ArrayList<String>();
for (int i=0;i<30;i++)
list.add(imageUrl);
Myadapter myadapter=new Myadapter(this,list);
listView.setAdapter(myadapter);
}
}


listview的适配器:

/**
* Created by 不告诉你 on 15/7/25.
*/
public class Myadapter extends BaseAdapter {

private Context context;
private List<String> list;

public Myadapter(Context context, List<String> list) {
this.context = context;
this.list = list;
initOptions();

}

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder=null;
if (convertView==null){
viewHolder=new ViewHolder();
convertView= LayoutInflater.from(context).inflate(R.layout.item_list,parent,false);
viewHolder.imageView= (ImageView) convertView.findViewById(R.id.image);
convertView.setTag(viewHolder);

}else {
viewHolder= (ViewHolder) convertView.getTag();
}
//执行加载动作
ImageLoader.getInstance().displayImage(list.get(position),viewHolder.imageView,options);

return convertView;
}

static class ViewHolder{
ImageView imageView;
}
//初始化options
private  DisplayImageOptions options;
private  void initOptions(){
options=new DisplayImageOptions.Builder()
.showImageOnFail(R.drawable.abc_dialog_material_background_dark)
.showImageOnLoading(R.drawable.abc_btn_check_material)
.cacheInMemory(true)
.cacheOnDisk(true)
.displayer(new RoundedBitmapDisplayer(30)).build();

}
}


结果:


就是那么的容易~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: