2014-03-19 94 views
1

我需要许多类似的可绘制资源。 我创建必需的文件,我在绘制文件夹 然后资源与阵列的文件:获取ID可绘制资源数组

<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}; 

一切工作正常。

+2

我din't让你问你能解释一下你想要 –

+1

'我收到阵列从zero.'什么什么 - 是的,正确,数组从索引0开始。 –

+0

我想接收ID资源数组,而不是数组零。 我找到了解决方法,但我想明白为什么会这样。 – Arty

回答

3

如果我明白你的问题..这里是你的答案:

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

<?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)); 
+0

是的,这是工作。谢谢。 – Arty