从URL加载大量图像

本文关键字:图像 加载 URL | 更新日期: 2023-09-27 18:13:11

我实际上是一名Android开发人员,当我将大量图像加载到ListBox时,我面临内存异常的问题。

我不知道Windows Phone应用程序的开发,所以请建议一个更好的解决方案,从Windows Phone的URL加载大量图像到ListBox

代码如下:

 public class listboxrows
    {
        public string text1 { get; set; }
        public string imageUri { get; set; }
        public string text2 { get; set; }
        public string instID { get; set; }
    }
      <Image Grid.Column="0" Width="90" Height="90" Source="{Binding imageUri}" ></Image>

我想知道如果这是一个有效的方式从url加载图像。

如果我有大量的图像,它会显示内存异常。

建议我一个更好的选择,我可以在没有任何内存异常的情况下有效地加载任何数量的图像。

是否有任何外部项目来实现我的目标?

从URL加载大量图像

虽然我还没有编写实际的代码来测试这一点,但我认为正确的方法是确保使用数据虚拟化。这篇文章提供了一个很好的例子(尽管它讨论的是Windows Phone 7的开发,但它仍然适用)。

如果确实有大量的数据要显示,您可能需要进一步研究本文中的方法,该方法进一步优化了在ListBox中显示项的工作。

当然,标准的免责声明是,用户必须滚动浏览大量项目的UI不一定总是最好的方法。

我想这篇文章会有帮助的。

  • 永远不要将服务器托管的图像直接绑定到控件,因为Silverlight运行时将使用UI线程(使用WebClient)从服务器获取该图像,这会使UI在一段时间内无响应。

  • 使用后台线程和基于HttpWebRequest类的实现以一种有效的方式下载图像数据,最终创建BitmapImage并将其设置为源。一个干净的MVVM包装器将使您的整个映像管理非常容易。