从android中的字符串数组引用drawable

时间:2013-11-05 14:54:14

标签: android android-resources android-drawable arrays

如何从字符串xml文件中引用可绘制资源? 我想做

<string-array name="my_array">
<item>@drawable/my_image</item>
...

我该怎么做?

2 个答案:

答案 0 :(得分:15)

对于drawables数组,不要使用字符串数组,只需使用<array>

然后使用它们,如果ids

,则获得TypedArray
TypedArray images = getResources().obtainTypedArray(R.array.my_image_ids);
int resourceId = images.getResourceId(id, -1);

并且不要忘记当你完成资源ID和数组以回收它时

images.recycle();

答案 1 :(得分:5)

我猜你试图将所有图像资源名称(作为字符串)存储在数组中,并在编写java代码时调用它?

Resources res = getResources();
String[] images = res.getStringArray(R.array.my_array);

将您的字符串数组放入数组中。您可以像往常一样通过访问数组来获取所需的项目。

String image_name = images[0];

http://developer.android.com/guide/topics/resources/string-resource.html

如果您尝试将图像列表加载到gridview,您可能需要参考:

http://developer.android.com/guide/topics/ui/layout/gridview.html

他们已将数组放在基本适配器中,如下所示:

private Integer[] mThumbIds = {
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7,
        R.drawable.sample_0, R.drawable.sample_1,
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7,
        R.drawable.sample_0, R.drawable.sample_1,
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7
};

您可以轻松使用它,就像访问数组一样。