69

我的res/drawable文件夹中有一些图像。假设和。img1.png_ 我目前正在像这样在 Java 中创建这些图像 ID 的整数数组img2.pngimg3.png

int[] imgIds = {R.drawable.img1, R.drawable.img2, R.drawable.img3};

相反,是否可以像这样在一个res/values文件(比如strings.xml)中创建一个整数数组

<integer-array name="img_id_arr">
    <item>@drawable/img1</item>
    <item>@drawable/img2</item>
    <item>@drawable/img3</item>
</integer-array>

然后通过 Java 访问它getResources().getIntArray(R.array.img_id_arr)

4

4 回答 4

70

仅使用“数组”而不是“整数数组”。请参阅开发人员指南中的类型化数组

于 2011-03-18T06:45:32.117 回答
52

请参阅XML 整数数组、资源引用、getIntArray

TypedArray ar = context.getResources().obtainTypedArray(R.array.my_array);
int len = ar.length();
int[] resIds = new int[len];
for (int i = 0; i < len; i++)
    resIds[i] = ar.getResourceId(i, 0);
ar.recycle();
// Do stuff with resolved reference array, resIds[]...
for (int i = 0; i < len; i++)
    Log.v (TAG, "Res Id " + i + " is " + Integer.toHexString(resIds[i]));
于 2012-09-18T03:48:47.973 回答
2

制作一个LevelListDrawable。虽然它不完全是你想要的,但几乎可以实现。

于 2011-03-18T01:43:34.517 回答
0

我认为最好将它们保存在代码中。

private static final int[] AVATARS = new int[]{
            R.drawable.ava_1, R.drawable.ava_2, R.drawable.ava_3...};
于 2020-11-23T13:58:16.490 回答