创建资源 ID 的整数数组

发布于 2024-10-23 20:06:51 字数 625 浏览 1 评论 0原文

我的 res/drawable 文件夹中有一些图像。假设img1.pngimg2.pngimg3.png。我目前正在 Java 中创建这些图像 ID 的整数数组,如下所示 相反

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>

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

I have some images in my res/drawable folder. Let's say img1.png,
img2.png and img3.png. I am currently creating an integer array of these image IDs in Java like this

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

Instead, is it possible to create an integer array in one of res/values files (say strings.xml) like this

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

and then access it in Java via getResources().getIntArray(R.array.img_id_arr)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

幽蝶幻影 2024-10-30 20:06:51

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

Use just "array" instead of "integer-array". See Typed Array in the developer guide.

我早已燃尽 2024-10-30 20:06:51

请参阅 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]));

See XML integer array, resource references, 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]));
愿与i 2024-10-30 20:06:51

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

Make a LevelListDrawable. Although it is not exactly what you want, but pretty much achievable.

比忠 2024-10-30 20:06:51

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

private static final int[] AVATARS = new int[]{
            R.drawable.ava_1, R.drawable.ava_2, R.drawable.ava_3...};

I think it's best to keep them in code.

private static final int[] AVATARS = new int[]{
            R.drawable.ava_1, R.drawable.ava_2, R.drawable.ava_3...};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文