8

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

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

我该怎么做?

4

2 回答 2

15

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

然后使用它们,TypedArray如果 ids

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

并且不要忘记当你用完资源 id 和数组来回收它

images.recycle();
于 2013-11-05T15:01:59.320 回答
7

我猜您正试图将所有图像资源名称(作为字符串)存储在一个数组中,并在您编写 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

如果您试图实现将图像列表加载到网格视图,您可能需要参考以下内容:

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

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

于 2013-11-05T15:04:22.317 回答