创建资源ID的整数数组

and*_*ken 60 arrays android android-resources

我的res/drawable文件夹中有一些图像.让我们说吧img1.png, img2.pngimg3.png.我正在用Java创建这些图像ID的整数数组

int[] imgIds = {R.drawable.img1, R.drawable.img2, R.drawable.img3};
Run Code Online (Sandbox Code Playgroud)

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

<integer-array name="img_id_arr">
    <item>@drawable/img1</item>
    <item>@drawable/img2</item>
    <item>@drawable/img3</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)

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

小智 65

仅使用"array"而不是"integer-array".请参阅开发人员指南中的Typed Array.


Joe*_*eer 48

请参阅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]));
Run Code Online (Sandbox Code Playgroud)