我的紧凑框架应用程序通过将所有项目渲染到大位图表面,然后将该位图复制到屏幕上的偏移位置,以便仅显示适当的项目来创建平滑滚动列表。旧版本仅渲染当时应该出现在屏幕上的项目,但这种方法对于平滑滚动界面来说太慢了。
最初创建大位图时,它偶尔会生成 OutOfMemoryException。如果用户对设备执行软重置并再次运行应用程序,则可以毫无问题地执行创建。
看起来这个位图不是在程序内存中生成的,因为应用程序使用的程序内存量与新的平滑滚动方法之前的程序内存量大致相同。
有什么方法可以防止这种异常吗?有什么方法可以在抛出异常之前释放我需要的内存(无论它在哪里)?
我建议回到仅渲染部分数据的旧机制,因为完全渲染数据的大小显然是一个问题。为了帮助防止渲染问题,我可能会预先渲染当前视图上方和下方的几行,以便它们可以在有限的影响下“滚动”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)