在聊天应用程序中,我使用的是Parse服务器。我想发送文字和图片。 由于回叫方法,图像的接收顺序与发送到服务器的顺序不同。当通过callBAck方法完全检索图像时,我在listView中显示图像。这样,图像的顺序就会受到干扰。
在不同的聊天应用程序中,首先显示imageView&然后从服务器检索后显示图像。我想做那样的事。
答案 0 :(得分: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;
}
从代码中可以看出,我重用了单元格,然后使用Picasso加载图像(我也使用parse-server,所以你的代码应该看起来很相似)