Android,管理许多具有位图作为属性的对象

时间:2016-02-29 20:07:11

标签: java android

我只是想知道在移动设置中最好的方法是什么。

我有一个说100 Objects的列表。这些对象中的每一个都附加了photo,我将加载为bitmap。所以我的第一直觉是创建一个Bitmap属性,当对象被实例化时,我为每个bitmap加载100 Objects属性。

我认为这不是一个非常好的方法,因为当我尝试使用listviewpicture加载title这些对象时。我的应用从分配到14mb的{​​{1}}内存跳转。在一些低端设备上它会立即崩溃。

我只是想知道在这种情况下哪些被认为是最好的做法。

我想要做的另一件事是为对象设置一个方法,根据每个对象的75mb,在需要时加载bitmap。想法?

编辑: 问题是,一旦我将位图添加到对象,内存分配就会跳到高位,我需要一种更好的方法来保存对象内图像的引用。图像甚至还没有显示出来。

2 个答案:

答案 0 :(得分:1)

在模型中保留位图文件的路径,并在adapter中获取实际的Bitmap

答案 1 :(得分:0)

你无法在内存中保存那么多位图。您可以使用LruCache来确保应用程序不会崩溃,但这只是为了加快对最新应用程序的检索,而不是将它们全部留在内存中。

最好保留对位图源的引用,并根据需要加载实际的位图,具体取决于您的用例。例如,如果要列出它们,请将RecyclerViewPicasso等库一起使用。通过这种方式,您可以让这些组件更好地为您处理内存。