首页 > 代码库 > 【android】在xml文件中定义drawable数组、id数组等
【android】在xml文件中定义drawable数组、id数组等
假如我们需要在代码中为一组view设置相对应的一组图片资源时(如为listview/gridview的所有item设置一组对应的图片时),我们就可以在xml中定义一组代表图片的drawable数组,然后用代码进行读取。
开始我是这样做的:
<integer-array name="actions_images"> <item>@drawable/pencil1</item> <item>@drawable/pencil2</item> <item>@drawable/pencil3</item> <item>@drawable/pencil4</item> <item>@drawable/pencil5</item> <item>@drawable/pencil6</item> </integer-array>
然后在代码中试图调用getResources().getIntArray来获取图片的id,可发现根本行不通。最终查stackoverflow给出了解决办法:
1、在xml中要这样定义:
<string-array name="actions_images"> <item>@drawable/pencil1</item> <item>@drawable/pencil2</item> <item>@drawable/pencil3</item> <item>@drawable/pencil4</item> <item>@drawable/pencil5</item> <item>@drawable/pencil6</item> </string-array>
2、在java代码中这样来获取:
TypedArray ar = context.getResources().obtainTypedArray(R.array.actions_images); int len = ar.length(); int[] resIds = new int[len]; for (int i = 0; i < len; i++) resIds[i] = ar.getResourceId(i, 0); ar.recycle();
图片的id就保存在resIds中去了,然后我们就可以引用它(比如用img.setImageResourse(resIds[0]))来设置图片了。
同理,要想在xml中定义id数组,做法一样。
参考:http://stackoverflow.com/questions/6945678/android-storing-r-drawable-ids-in-xml-array
【android】在xml文件中定义drawable数组、id数组等
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。