我现在正在使用Java2d并试图找出一种加载和存储我在屏幕上绘制的图像的好方法。通常我使用ImageLoader,我写了很长的路,它将所有加载的图像按其位置存储为哈希映射中的键。我现在的问题是,在加载大量图像后,应用程序往往会占用大量内存。
这是合乎逻辑的,因为对于一个香椿的动画我已经有一个大小为1248 x 4928的瓦片地图,根据我的计算,它在内存中约为62Mb。装载其中几个卡通会很快填满内存,我甚至还没有加载任何世界物品。
有没有更好的方法来处理图像资源?
我已经尝试过使用VolatileImage但是即使它们应该存储在GPU内存中,它们仍会占用大量的系统内存。同时在需要时动态加载图像文件可能会因为所有光盘访问而严重降低整个画质循环。