您是否经历过9gag,Instagram或Facebook等应用?您注意到,滚动图片时会加载到recviewer中。当你仍然可以使用该应用程序时,它们会逐一进入。
我已经实现了自己的自定义recviewer并且卡在了这里:
pictures = KumulosHelper.Pictures.getNewestXPhotosFromUserInRange
(strUsername, "6", startNumberOfTask.ToString(), "1");
foreach (var picture in pictures)
{
startNumberOfTask++;
var metrics = Resources.DisplayMetrics;
lstData.Add(new DataForProfile()
{
imageId = startNumberOfTask,
img = (Bitmap.CreateScaledBitmap
(KumulosGeneral.DecodePhotoFromBase64(picture.photo),
metrics.WidthPixels, metrics.WidthPixels, true)),
description = picture.taskId.ToString()
});
}
我输入" 6"是我从服务器加载到我的回收查看器的6张图片的地方。我可以键入10或20,然后继续加载这些图片。所以,我可能会建立一个"达到的极端"观众到达终点时继续加载新图片。但这意味着用户每次到达矩阵底部时都必须等待。这很烦人。此外,整个活动不会开始,直到所有图片都满载。
如何让我的recview表现得像上面提到的appore上面的应用程序?某种" smart"加载图片?
感谢您的投入!
答案 0 :(得分:2)
尝试使用非常可靠且易于使用的Picasso库。它还在后台线程中加载图片。 https://www.nuget.org/packages/Square.Picasso/
此外,整个活动都不会开始,直到所有图片都满载为止。
为了不阻止您的UI线程,请尝试使用BackgroundWorker或任务。
最后,如果要在用户到达列表底部之前加载新批量的图像,则更改逻辑以触发对新批次的调用,例如当用户滚动表格的一半时。