我是靠谱客的博主 鲜艳金鱼,最近开发中收集的这篇文章主要介绍【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数组等的全部内容,希望文章能够帮你解决【android】在xml文件中定义drawable数组、id数组等所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部