首先在values文件夹下找到--arrays.xml 文件。(如果,没有就新建一个)
一维数组:
格式如下(图片1,图片2等为,你图片文件夹下的图片名称)
<integer-array name="image_array">
<item>@drawable/图片1</item>
<item>@drawable/图片2</item>
<item>@drawable/图片3</item>
<item>@drawable/图片4</item>
</integer-array>
如何在代码里面取图片。
int imageId;
TypedArray mTypedArray=getResources().obtainTypedArray(R.array.image_array);
//参数含义,第一个参数为 :所取图片在数组中的索引,第二个参数为:未找到时,返回的默认值。
imageId= mTypedArray .getResourceId(0, 1);
//释放资源
mTypedArray.recycle();
此方法得到的是:图片1的id.
二位数组:
格式如下:
<integer-array name="image_arrays">
<item>@array/image_array_one</item>
<item>@array/image_array_one</item>
</integer-array>
<integer-array name="image_array_one">
<item>@drawable/图片1</item>
<item>@drawable/图片2</item>
<item>@drawable/图片3</item>
<item>@drawable/图片4</item>
</integer-array>
<integer-array name="image_array_two">
<item>@drawable/图片5</item>
<item>@drawable/图片6</item>
<item>@drawable/图片7</item>
<item>@drawable/图片8</item>
</integer-array>
如何在代码里面取:
int imageId;
TypedArray mTypedArray=getResources().obtainTypedArray(R.array.image_arrays);
//参数含义,第一个参数为 :图片数组索引,第二个参数为:未找到时,返回的默认值。
TypedArray arrays= getResources().obtainTypedArray(mTypedArray.getResourceId(1, 1));
//参数含义,第一个参数为 :所取图片在数组中的索引,第二个参数为:未找到时,返回的默认值。
imageId= arrays.getResourceId(0, 1);
//释放资源
mTypedArray.recycle();
arrays.recycle();
此方法,得到的是:图片5的id.
有的时候,需要得到一个图片数组。那么可以封装一下。
/**
*context 上下文
*
*arraysIndex 所需要的图片一维数组索引
*
resId 二维数组的资源Id
*/
public int[] getResIdArray(Context context, int arraysIndex, int resId) {
TypedArray mTypedArray = context.getResources().obtainTypedArray(resId);
TypedArray arrays= context.getResources().obtainTypedArray(
mTypedArray .getResourceId(arraysIndex, 1));
int len = arrays.length();
int[] resIdArray = new int[len];
for (int i = 0; i < len; i++) {
resIdArray[i] = arrays.getResourceId(i, -1);
}
return resIdArray;
}
PS: 如果是图片,还有另外一种类似数组定义方法。(个人心得,不一定很好。)
首先找打res 文件夹 并 建立drawable 文件夹
然后,建立一个xml 文件。名字自定义,内容格式为:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/图片0"
android:maxLevel="0"/>
<item
android:drawable="@drawable/图片1"
android:maxLevel="1"/>
<item
android:drawable="@drawable/图片2"
android:maxLevel="2"/>
</level-list>
代码使用:
// imagid 为定义的drawable .xml文件的资源id.
// position 为图片设置的maxLevel的数值。
imageView.setImageResource(imagId);
imageView.setImageLevel(position);
这个就可以把多张图片,集合到一个drawable中来。
配合一维数组取图片方法,也可以做到和二维数组一样的效果。
看具体情况去使用吧。