从json加载到listview会导致app在滚动时不响应。 xamarin.android

时间:2017-03-08 13:38:14

标签: c# json listview http xamarin.android

我将json(带图片)的大量数据加载到我的列表视图中,这会导致我的应用程序在滚动时不响应但是如果我在我的模拟器上按等待...我可以滚动它但是它使我的应用程序非常滞后..然而。我的应用程序中有一个细节,也来自我的json。点击我的列表视图中的1个项目并继续我的详细活动后,滞后消失了。有什么方法可以解决这个问题?我把我的json文件的链接放在下面。我认为我的滚动视图很难加载我的图像..因为我做了我的研究它说我应该在将图像转换为字节时使用memorycache但是如何? :O

继承人如何将我的图像转换为字节..

public class ImageHelper
{
    public static Bitmap GetImageBitmapFromUrl(string url)
    {
        Bitmap imageBitmap = null;

        using (var webClient = new WebClient())
        {
            webClient.Headers.Add(System.Net.HttpRequestHeader.UserAgent, "Others");
            var imageBytes = webClient.DownloadData(url);
            if (imageBytes != null && imageBytes.Length > 0)
            {
                imageBitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
            }
        }
        return imageBitmap;
    }        
}

My json file.

3 个答案:

答案 0 :(得分:1)

FFImageLoading为您处理。它是一个非常着名的图像缓存和压缩库。

答案 1 :(得分:1)

您可以使用Piccaso https://components.xamarin.com/view/square.picasso进行异步图像下载和缓存。它的效果非常好。

答案 2 :(得分:0)

以下是一些提示

  • 缩小图像尺寸或压缩图像
  • 进行分页,即以数据块的形式加载数据并在用户向下滚动时加载更多
  • 打开分析器以记录内存交叉危险标志