Reference drawable from string-array in android [duplicate]

若如初见. 提交于 2020-01-12 02:19:29

问题


how would I reference a drawable resource from the string xml file? I want to do

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

How would I do that?


回答1:


for arrays of drawables ids, don't use string array just use <array>

then to use them, get a TypedArray if the ids

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

and don't forget when you're done with the resource id and array to recycle it

images.recycle();



回答2:


I guess you are trying to store all of your image resource names (as string) inside an array and be called when you write your java code?

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

Would get your string array into an array. You can get the item you want by accessing the array as usual.

String image_name = images[0];

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

If you are trying to achieve to load a list of images to a gridview, you might want to refer to this:

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

They have placed the array in the base adapter, like this:

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

Which you can easy use just like how you would access an array.



来源:https://stackoverflow.com/questions/19791845/reference-drawable-from-string-array-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!