从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加载图像。
如果我有大量的图像,它会显示内存异常。
建议我一个更好的选择,我可以在没有任何内存异常的情况下有效地加载任何数量的图像。
是否有任何外部项目来实现我的目标?虽然我还没有编写实际的代码来测试这一点,但我认为正确的方法是确保使用数据虚拟化。这篇文章提供了一个很好的例子(尽管它讨论的是Windows Phone 7的开发,但它仍然适用)。
如果确实有大量的数据要显示,您可能需要进一步研究本文中的方法,该方法进一步优化了在ListBox
中显示项的工作。
当然,标准的免责声明是,用户必须滚动浏览大量项目的UI不一定总是最好的方法。
我想这篇文章会有帮助的。
永远不要将服务器托管的图像直接绑定到控件,因为Silverlight运行时将使用UI线程(使用WebClient)从服务器获取该图像,这会使UI在一段时间内无响应。
使用后台线程和基于HttpWebRequest类的实现以一种有效的方式下载图像数据,最终创建BitmapImage并将其设置为源。一个干净的MVVM包装器将使您的整个映像管理非常容易。