2017-05-16 16 views
0

在聊天應用程序中,我使用的是Parse服務器。我想發送文字和圖像。 由於回撥方法,圖像未按照發送到服務器的順序接收。當通過callBAck方法完全檢索圖像時,我在listView中顯示圖像。因此,圖像的順序受到干擾。發送接收圖像解析服務器(Android)並在listview保存命令中填充

在不同的聊天應用程序中,首先顯示imageView &然後在從服務器檢索後顯示圖像。我想要做那樣的事情。

回答

0

首先,您必須確保您通過recyclerview或視圖持有者重新使用表格視圖單元格。然後,我建議您使用Picasso這將真正減少處理圖像和緩存圖像的所有複雜性。

這是我在我的項目之一的確在適配器之一:

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

      CoverImage coverImage = coverImages.get(position); 

      ViewHolder holder; 

      if (convertView == null) { 
       holder = new ViewHolder(); 
       convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_cover_image, parent, false); 
       holder.nameTextView = (TextView) convertView.findViewById(R.id.coverImageNameTextView); 
       holder.coverImageView = (ImageView) convertView.findViewById(R.id.coverImageView); 
       convertView.setTag(holder); 
      } else { 
       holder = (ViewHolder) convertView.getTag(); 
      } 

      holder.nameTextView.setText(coverImage.getName()); 

      com.tasksforce.honeydo.parse.model.CoverImage customCoverImage = User.currentUser().getCoverPhotoWithKey(coverImage.getKey()); 

      if (customCoverImage != null && customCoverImage.getImage() != null) { 
       Picasso.with(getContext()) 
         .load(customCoverImage.getImage() 
           .getUrl()) 
         .into(holder.coverImageView); 
      } else { 
       try { 
        holder.coverImageView.setImageBitmap(ImageUtils.getBitmapFromAssets(getContext(), coverImage.getKey())); 
       } catch (IOException e) { 
       } 
      } 

      return convertView; 
     } 

正如你可以從代碼中看到,我重用細胞,然後我用畢加索加載圖像(我也使用parse-server,所以你的代碼應該看起來很相似)

相關問題