整个 Android 应用程序中的静态可绘制对象数组

Static drawable array through whole Android application

我的 res 文件夹中有一个 56 可绘制对象。
我在 2 个片段中使用它们。

创建一个 class 具有包含这些可绘制对象的静态数组并在我想使用它时调用它的 get 方法是一种很好的记忆方法吗?
或者我应该在每个片段中创建一个私有数组吗?

您应该在片段中创建私有数组。将它们全部放在另一个 class 中将意味着即使您不使用它们占用内存,它们也永远不会被破坏。此外,当应用程序进入后台时间过长时,静态数组将被删除,因此如果数组为 null

,您将需要额外的代码在恢复时重新加载数组

您可以使用资源 ID 创建一个静态 int 数组,这是一个示例:

public static final int[] DRAWABLE_ARRAY = {
    android.R.drawable.sym_def_app_icon,
    android.R.drawable.title_bar,
    android.R.drawable.ic_menu_compass
};

那么这个数组的用法可能是这样的:

for (int i = 0; i < DRAWABLE_ARRAY.length ; i++) {
    context.getResources().getDrawable(DRAWABLE_ARRAY[i]);
}

这样您就不会创建占用大量内存的对象,因为这些只是资源 ID