Пользовательский просмотр списка Android очень медленный при прокрутке

ребята, у меня проблема с моим списком. Он работает так медленно при прокрутке, кто-нибудь может мне помочь. Мой список - это настраиваемый макет, использующий относительное с 3 текстовыми представлениями и 1 просмотром изображений, каждая строка со всем содержимым извлекается из Интернета. Я использую специальный адаптер и держатель представления.

ниже приведены мои коды того, как я использую адаптер.

public class MessageList extends ListActivity {


    @Override
    public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
        setContentView(R.layout.listarticle);

        loadFeed(link);
        setListAdapter(new IconAdapter(this));

    }

 /* This method load xml file and parse it into message object*/
 private void loadFeed(String link){
     try{
      BaseFeedParser parser = new BaseFeedParser(link);
      messages = parser.parse();
      titles = new ArrayList<String>(messages.size());
      image = new ArrayList<String>(messages.size());
      date_post = new ArrayList<String>(messages.size());
      descs = new ArrayList<String>(messages.size());
      for (Message msg : messages){
       titles.add(msg.getTitle());
       image.add(msg.getImageLink().toString());
       date_post.add(msg.getDate());
       descs.add(msg.getDescription());

      }
       } catch (Throwable t){
      Log.e("AndroidNews",t.getMessage(),t);
     }
    }

 /*this is my custom baseadapter */
 class IconAdapter extends BaseAdapter{
  private LayoutInflater mInflater;


  public IconAdapter(Context cxt){
   mInflater = LayoutInflater.from(cxt);


  }

  public class ViewHolder{
   private TextView title;
   private TextView date;
   private TextView desc;
   private ImageView thumb;
  }

  public View getView(int positiion, View convertView, ViewGroup parent){
   ViewHolder holder;

   if (convertView==null){
    convertView = mInflater.inflate(R.layout.row, null);

    holder = new ViewHolder();

    holder.title = (TextView) convertView.findViewById(R.id.title);
    holder.date = (TextView) convertView.findViewById(R.id.date);
    holder.desc = (TextView) convertView.findViewById(R.id.deskripsi);
    holder.thumb = (ImageView) convertView.findViewById(R.id.thumbnail);

    convertView.setTag(holder);
   }else{

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

   holder.title.setText(titles.get(positiion));
   holder.date.setText(date_post.get(positiion));
   holder.desc.setText(descs.get(positiion).substring(0, 55)+"...");
   Drawable draw = LoadImageFromWebOperation(image.get(positiion));

   holder.thumb.setImageDrawable(draw);

   return convertView;
  }
  /* this method take image from url that retrieve from xml*/
  public Drawable LoadImageFromWebOperation(String url){
   try{
    InputStream is = (InputStream) new URL(url).getContent();
    Drawable d = Drawable.createFromStream(is, "src name");
    return d;
   }catch (Exception e){
    Log.d("image", url, e);
    return null;
   }
  }

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

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

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

 }
6
задан Rahadyanteja 22 December 2010 в 07:56
поделиться