Android,Xamarin:在滚动时将图片加载到回收查看器

时间:2018-01-05 13:53:06

标签: android xamarin

您是否经历过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"加载图片?

感谢您的投入!

1 个答案:

答案 0 :(得分:2)

尝试使用非常可靠且易于使用的Picasso库。它还在后台线程中加载图片。 https://www.nuget.org/packages/Square.Picasso/

  

此外,整个活动都不会开始,直到所有图片都满载为止。

为了不阻止您的UI线程,请尝试使用BackgroundWorker或任务。

最后,如果要在用户到达列表底部之前加载新批量的图像,则更改逻辑以触发对新批次的调用,例如当用户滚动表格的一半时。