android能否像存储整数数组一样存储可绘制ID?

android能否像存储整数数组一样存储可绘制ID?,android,android-drawable,android-resources,Android,Android Drawable,Android Resources,我想要一个drawableid整型值数组,我可以使用integer array标记将其像integer array一样存储在res/values/XXX.xml中。下面是在strings.xml中声明的整数数组 <integer-array name="icons"> <item>1</item> <item>2</item> <item>3</item> <item

我想要一个
drawable
id整型值数组,我可以使用
integer array
标记将其像
integer array
一样存储在
res/values/XXX.xml
中。下面是在
strings.xml中声明的整数数组

<integer-array name="icons">
     <item>1</item>
     <item>2</item>
     <item>3</item>
     <item>4</item>
</integer-array>

1.
2.
3.
4.
但我想将可绘制图像ID(如
@drawable/someImage
)存储为xml中的整数数组

是否有其他方法可以将可绘制的整数ID存储为xml中的整数数组。

您可以使用

摘录:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="media_names">
        <item>Big Buck Bunny</item>
        <item>Elephants Dream</item>
        <item>Sintel</item>
        <item>Tears of Steel</item>
    </string-array>

    <string-array name="media_uris">
        <item>http://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4</item>
        <item>http://archive.org/download/ElephantsDream_277/elephant_dreams_640_512kb.mp4</item>
        <item>http://archive.org/download/Sintel/sintel-2048-stereo_512kb.mp4</item>
        <item>http://archive.org/download/Tears-of-Steel/tears_of_steel_720p.mp4</item>
    </string-array>
</resources>

大公兔
大象梦
寻龙记
钢的撕裂
http://archive.org/download/BigBuckBunny_328/BigBuckBunny_512kb.mp4
http://archive.org/download/ElephantsDream_277/elephant_dreams_640_512kb.mp4
http://archive.org/download/Sintel/sintel-2048-stereo_512kb.mp4
http://archive.org/download/Tears-of-Steel/tears_of_steel_720p.mp4

您想要实现什么,我不能100%告诉您这是否是您的最佳选择。

请查看文档,特别是文章。引述:

类型化数组
在XML中定义的类型Darray。您可以使用它来创建其他资源的数组,例如drawables

示例:
保存在res/values/arrays.XML的XML文件:


@可抽出式/家用
@可绘制/设置
@可提取/注销
#FFFF0000
#FF00FF00
#FF0000FF

我想
类型Darray
就是您要找的。我有使用它的样品。如果您感兴趣,请查看以下代码:

首先
res/values/arrays.xml中的
整数数组

<integer-array name="frag_home_ids">
    <item>@drawable/frag_home_credit_return_money</item>
    <item>@drawable/frag_home_transfer</item>
    <item>@drawable/frag_home_balance</item>
    <item>@drawable/frag_home_charge</item>
    <item>@drawable/frag_home_finance_cdd</item>
    <item>@drawable/frag_home_finance_ybjr</item>
    <item>@drawable/frag_home_more</item>
</integer-array>
当然,您可以通过这种方式获得
字符串
颜色
整数
布局
菜单
…的整数值


我希望这些代码能启发您。

@Knossos-我希望可绘制图像以数组形式存储在xml文件中,以便我可以在适配器中直接使用它们。然后您想看看@aga的答案。这将满足您的需要。我不确定这正是您要查找的,但请尝试此操作。不要忘记在第二步结束时通过调用tArray.recycle()来回收类型化数组,以避免内存问题。
<integer-array name="frag_home_ids">
    <item>@drawable/frag_home_credit_return_money</item>
    <item>@drawable/frag_home_transfer</item>
    <item>@drawable/frag_home_balance</item>
    <item>@drawable/frag_home_charge</item>
    <item>@drawable/frag_home_finance_cdd</item>
    <item>@drawable/frag_home_finance_ybjr</item>
    <item>@drawable/frag_home_more</item>
</integer-array>
TypedArray tArray = getResources().obtainTypedArray(
            R.array.frag_home_ids);
int count = tArray.length();
int[] ids = new int[count];
for (int i = 0; i < ids.length; i++) {
    ids[i] = tArray.getResourceId(i, 0);
}
//Recycles the TypedArray, to be re-used by a later caller. 
//After calling this function you must not ever touch the typed array again.
tArray.recycle();
holder.iv.setImageResource(ids[position]);