【问题标题】:Loading huge from json to listview causes app not to respond when scrolling. xamarin.android从 json 加载大量到 listview 会导致应用在滚动时不响应。 xamarin.android
【发布时间】:2017-03-08 13:38:13
【问题描述】:

我正在将大量数据从 json(带图像)加载到我的列表视图中,这会导致我的应用在滚动时没有响应,但是如果我在模拟器上按下等待.. 我可以滚动它,但它让我的应用非常滞后..但是。我的应用程序中有一个 detailactivity,它也来自我的 json。在我的列表视图中单击 1 项并继续我的详细活动后,滞后消失了。有什么解决方法吗?我把我的json文件的链接放在下面。我认为我的滚动视图很难加载我的图像..正如我所做的研究它说我应该在将图像转换为字节时使用内存缓存..但是如何? :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.

【问题讨论】:

    标签: c# json listview http xamarin.android


    【解决方案1】:

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

    【讨论】:

    • @merbsanda 很高兴知道这一点。如果对您有帮助,您可能希望将其中一个答案标记为已接受。 :)
    【解决方案2】:

    FFImageLoading 为您处理。这是一个很棒的图像缓存和压缩库。

    【讨论】:

      【解决方案3】:

      这里有一些提示

      • 缩小图片大小或压缩图片
      • 进行分页,即分块加载数据,并在用户向下滚动时加载更多数据
      • 打开探查器以记录内存在什么时候越过危险标志

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-25
        • 1970-01-01
        • 2012-03-17
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        相关资源
        最近更新 更多