making fats the listview
i am downloding images in the getView() method and the list is very slow i wanted to implement lazy loading in my listview
i did the following

public View getView(int position, View convertView, ViewGroup parent) 
		 {
		 
			 ViewHolder holder;
	   
			 if (convertView == null || convertView.getTag() == null) 
			 {
				 convertView = mInflater.inflate(R.layout.businesspresentation_row, null);
				 holder = new ViewHolder();
				 
				 holder.tab1Text=(TextView)convertView.findViewById(R.id.txt_companyname);
				 holder.tab2Text=(TextView)convertView.findViewById(R.id.txt_date);
				 holder.tab3Text=(TextView)convertView.findViewById(R.id.txt_time);
				 holder.tab4Text=(TextView)convertView.findViewById(R.id.txt_place);
				 
				 holder.tab1Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab2Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab3Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab4Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 
				 
				 holder.backgrouundView = (ImageView) convertView.findViewById(R.id.icon);
				 
				 holder.img_waiting=(ProgressBar)convertView.findViewById(R.id.img_waiting);
				
				 convertView.setTag(holder);
			 } 
			 else 
			 {
				 holder = (ViewHolder) convertView.getTag();
			 }
			 
			 	DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
				Date dt = null;
				Calendar cal = Calendar.getInstance();
				try
				{
					dt = df.parse(MainActivity.data_bedpres_future.get(1).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					cal.setTime(dt);
				}
				catch (ParseException e1) 
				{
					e1.printStackTrace();
				}
				
				DateFormat df2=new SimpleDateFormat("hh:mm");
				Date dt2 = null;
				Calendar cal2 = Calendar.getInstance();
				try
				{
					dt2 = df2.parse(MainActivity.data_bedpres_future.get(2).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					Log.v("hello",""+MainActivity.data_bedpres_future.get(2).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					cal2.setTime(dt2);
				}
				catch (ParseException e1) 
				{
					e1.printStackTrace();
				}
				
			 
			holder.tab1Text.setText(MainActivity.data_bedpres_future.get(0).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
			holder.tab2Text.setText("Dato: "+cal.get(Calendar.DATE)+"."+(cal.get(Calendar.MONTH)+1)+"."+cal.get(Calendar.YEAR));
			holder.tab3Text.setText("Tid: "+cal2.get(Calendar.HOUR_OF_DAY)+":"+cal2.get(Calendar.MINUTE));
			holder.tab4Text.setText("Sted: "+MainActivity.data_bedpres_future.get(3).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					
			try
			{
				int height,width,w;
				Drawable img;
				img = drawable_from_url(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position),"icon");
				if(img!=null)
				{
					height = img.getMinimumHeight() > 45 ? 45 :img.getMinimumHeight();
					int c=img.getMinimumHeight();
					int ratio =  ((img.getMinimumHeight() - height)*100/img.getMinimumHeight());
					int wi    = (img.getMinimumWidth() * ratio) /100;
					width = img.getMinimumWidth() -wi;
					w=width;
					int width1 = width > 75 ? 75 :width;
					 if (width>0) 
					 {
					   ratio =  ((width - width1)*100/width);
					   int hi    = (height * ratio) /100;
					   height = height -hi;
					   w=width1;
					 }
					
					ViewGroup.LayoutParams params = holder.backgrouundView.getLayoutParams();
					params.height = height;
					params.width = w;
					holder.backgrouundView.setLayoutParams(params);
					
					holder.backgrouundView.setTag(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					
					imageLoader.DisplayImage(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position),BusinessPresentations.this, holder.backgrouundView,holder.img_waiting);
				}
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
			
			 return convertView;
		 }
making fats the listview
===

i am downloding images in the getView() method and the list is very slow i wanted to implement lazy loading in my listview
i did the following

public View getView(int position, View convertView, ViewGroup parent) 
		 {
		 
			 ViewHolder holder;
	   
			 if (convertView == null || convertView.getTag() == null) 
			 {
				 convertView = mInflater.inflate(R.layout.businesspresentation_row, null);
				 holder = new ViewHolder();
				 
				 holder.tab1Text=(TextView)convertView.findViewById(R.id.txt_companyname);
				 holder.tab2Text=(TextView)convertView.findViewById(R.id.txt_date);
				 holder.tab3Text=(TextView)convertView.findViewById(R.id.txt_time);
				 holder.tab4Text=(TextView)convertView.findViewById(R.id.txt_place);
				 
				 holder.tab1Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab2Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab3Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 holder.tab4Text.setTypeface(Config.TF_HELVETICA_BOLD);
				 
				 
				 holder.backgrouundView = (ImageView) convertView.findViewById(R.id.icon);
				 
				 holder.img_waiting=(ProgressBar)convertView.findViewById(R.id.img_waiting);
				
				 convertView.setTag(holder);
			 } 
			 else 
			 {
				 holder = (ViewHolder) convertView.getTag();
			 }
			 
			 	DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
				Date dt = null;
				Calendar cal = Calendar.getInstance();
				try
				{
					dt = df.parse(MainActivity.data_bedpres_future.get(1).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					cal.setTime(dt);
				}
				catch (ParseException e1) 
				{
					e1.printStackTrace();
				}
				
				DateFormat df2=new SimpleDateFormat("hh:mm");
				Date dt2 = null;
				Calendar cal2 = Calendar.getInstance();
				try
				{
					dt2 = df2.parse(MainActivity.data_bedpres_future.get(2).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					Log.v("hello",""+MainActivity.data_bedpres_future.get(2).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					cal2.setTime(dt2);
				}
				catch (ParseException e1) 
				{
					e1.printStackTrace();
				}
				
			 
			holder.tab1Text.setText(MainActivity.data_bedpres_future.get(0).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
			holder.tab2Text.setText("Dato: "+cal.get(Calendar.DATE)+"."+(cal.get(Calendar.MONTH)+1)+"."+cal.get(Calendar.YEAR));
			holder.tab3Text.setText("Tid: "+cal2.get(Calendar.HOUR_OF_DAY)+":"+cal2.get(Calendar.MINUTE));
			holder.tab4Text.setText("Sted: "+MainActivity.data_bedpres_future.get(3).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					
			try
			{
				int height,width,w;
				Drawable img;
				img = drawable_from_url(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position),"icon");
				if(img!=null)
				{
					height = img.getMinimumHeight() > 45 ? 45 :img.getMinimumHeight();
					int c=img.getMinimumHeight();
					int ratio =  ((img.getMinimumHeight() - height)*100/img.getMinimumHeight());
					int wi    = (img.getMinimumWidth() * ratio) /100;
					width = img.getMinimumWidth() -wi;
					w=width;
					int width1 = width > 75 ? 75 :width;
					 if (width>0) 
					 {
					   ratio =  ((width - width1)*100/width);
					   int hi    = (height * ratio) /100;
					   height = height -hi;
					   w=width1;
					 }
					
					ViewGroup.LayoutParams params = holder.backgrouundView.getLayoutParams();
					params.height = height;
					params.width = w;
					holder.backgrouundView.setLayoutParams(params);
					
					holder.backgrouundView.setTag(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position));
					
					imageLoader.DisplayImage(MainActivity.data_bedpres_future.get(4).get(MainActivity.data_bedpres_future.get(0).size()-1-position),BusinessPresentations.this, holder.backgrouundView,holder.img_waiting);
				}
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
			
			 return convertView;
		 }