0

这是我在 Windows Phone 环境中开发的首批应用程序之一,所以我基本上是边学边学。我有一个带有枢轴控件的应用程序,并且在三个枢轴项中的每一个上都有一个 LongListSelector。当您滚动来自网络的图像时,它们会加载到 longlistselector 中,这是无限滚动(因为一旦在底部看到您的图像就会加载更多)。但是,在测试中,如果我疯狂滚动以下载大量图像,则会收到以下错误:

'System.OutOfMemoryException' occurred in System.Windows.ni.dll

因为我每次都加载一些相同的图像,所以我实现了 PersistentImageCache (Kawagoe.Storage) 来缓存图像。

http://kawagoe.codeplex.com/wikipage?title=Storage.PersistentImageCache

当用户向下滚动时,我是否必须以某种方式卸载图像,并在用户向上滚动时重新加载它们?或者为每张 X 图像清除内存?(我有 HTC 8S,所以这对于内存更大的手机可能不是问题)。

非常感谢。

4

1 回答 1

0

由于您正在为 wp8 进行开发,因此请考虑对 longlistselector 使用网格布局,如本示例所示:

http://code.msdn.microsoft.com/wpapps/PhotoHub-Windows-Phone-8-fd7a1093

Afaik 他们做了许多先进的内存节省技术,如分页 3 页内容、延迟加载内容实现方法和位图缓存。

我可以毫无问题地展示 100 个 hubtiles(臭名昭著的记忆棒)

额外提示:您可以通过设置较低的 maximumflickvelocity 来控制滚动速度,这让您有更多时间来做您需要做的事情。

于 2013-06-11T06:45:08.067 回答