【问题标题】:Get array of id drawable resources获取 id 可绘制资源数组
【发布时间】:2014-04-25 15:29:15
【问题描述】:

我需要许多类似的可绘制资源。 我在drawable文件夹中创建了我需要的文件 然后是带有数组的资源文件:

<array name="btn_style">
    <item>@drawable/tile0</item>
    <item>@drawable/tile1</item>
    ...
</array>

但是当我写的时候

int[] btn_draw = getResources().getIntArray(R.array.btn_style);

我从数组中收到零。

如果我这样做

  int[] btn_draw = {R.drawable.tile0,R.drawable.tile1};

一切正常。

【问题讨论】:

  • 我不明白你在问什么,你能解释一下你想要什么
  • I receive the array from zero. - 是的,正确,数组从索引 0 开始。
  • 我想接收 ID 资源数组,而不是零数组。我找到了解决方法,但我想了解为什么会这样。
  • I receive the array from zero. 我相信 OP 的意思是他从数组中收到了零值。我已经编辑了问题以澄清。 @OP:我猜您使用getIntArray() 收到错误值的原因是您的XML 使用&lt;array&gt; 而不是&lt;integer-array&gt;

标签: android resources drawable


【解决方案1】:

如果我理解你的问题.. 这是你的答案:

试试这个: 您可以使用类型化数组..

<?xml version="1.0" encoding="utf-8"?>
    <resources>

        <string-array name="random_imgs">
            <item>@drawable/car_01</item>
            <item>@drawable/balloon_random_02</item>
            <item>@drawable/dog_03</item>
        </string-array>

    </resources>

然后在您的活动中像这样访问它们:

TypedArray imgs = getResources().obtainTypedArray(R.array.random_imgs);
//get resourceid by index
imgs.getResourceId(i, -1)
// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, -1));

【讨论】:

    【解决方案2】:

    我没有评论您的问题的声誉,所以我必须发布答案。

    我相信这个问题已经回答了:

    Get an integer array from an xml resource in Android program

    【讨论】:

    • 我按照本例中的方式进行操作。但就我而言,它不适用于可绘制对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    相关资源
    最近更新 更多