2015-01-17 5 views
0

У меня есть список изображений, которые я показываю. Я успешно извлекаю изображения и устанавливаю изображение в ImageView.Изображение не сохраняется DataViewAdapter

Но проблема в том, что всякий раз, когда я просматриваю список изображений, изображение имеет тенденцию загружать изображение другого изображения. то есть случайное изменение изображений изображения.

Я хочу, чтобы как только изображение загрузилось, он становится устойчивым к соответствующему имиджу.

public View getView(int position, View convertView, ViewGroup parent) { 

    dish = dishes.get(position); 

    LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    final View rowView = inflater.inflate(R.layout.dish_summary, parent, 
      false); 
    image = (ImageView) rowView.findViewById(R.id.dish_image); 
    Log.i("image",String.valueOf(image.getTag())); 
    if (image.getTag() == null){ 
    new LoadImage().execute(dish.getImage()); 
    }  
    notifyDataSetChanged(); 
    return rowView; 
} 


private class LoadImage extends AsyncTask<String, String, Bitmap> { 
    @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(context); 
      pDialog.setMessage("Loading Menu ...."); 
      pDialog.show(); 
    } 
     protected Bitmap doInBackground(String... args) { 
     try { 
       bitmap = BitmapFactory.decodeStream((InputStream)new URL(args[0]).getContent()); 
     } catch (Exception e) { 
       e.printStackTrace(); 
     } 
     return bitmap; 
     } 
     protected void onPostExecute(Bitmap img) { 

     if(img != null) 
     { 
      image.setImageBitmap(img); 
      image.setTag(img); 
      pDialog.dismiss(); 
     }else 
     { 
      pDialog.dismiss(); 
      Toast.makeText(context, "Image Does Not exist or Network Error", Toast.LENGTH_SHORT).show(); 
     } 
     } 
} 

ответ

0

Поскольку метод GetView() вызывается для перекодировки/перерисовки списка, когда он исчезает из поля зрения. Изображение пытается перерисовать себя.

Чтобы решить мою проблему, я использовал и внешнюю библиотеку SmartImageView, которая позволяет загружать изображения из URL-адресов и изображений, кэшируется в память и на диск для сверхбыстрой загрузки.

Надеюсь, что это поможет!

Смежные вопросы