如何在xml中定义资源,然后在应用中通过java代码引用。
文件位置:res/values/filename.xml
< resources> 是根元素,<string-array>元素的name属性被用作数组资源的ID, <string-array>可以包含一个或多个<item>元素。
样式如下:
< resources>
< string-array name = " string_array_name " >
< item> text_string </item>
< item> text_string </item>
</string-array>
<integer-array name="integer_array_name">
< item> text_string </item>
< item> text_string </item>
</integer-array>
</resources>
java代码获取一个字符数组:
String[] names = getResources().getStringArray(R.array.string_array_name);
java代码获取一个整型数组:
int[] names = getResources().getIntArray(R.array.integer_array_name);
1 定义字符数组|定义整型数组(一般在arrays.xml中,也可以定义在res/values/array_filename.xml,其中array_filename.xml是自定义的)
res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="animals">
<item>tiger</item>
<item>rabbit</item>
<item>cat</item>
</string-array>
<integer-array name="count">
<item>12</item>
<item>22</item>
<item>33</item>
</integer-array>
</resources>
2 定义颜色(一般放在colors.xml,也可以放在res/values/color_filename.xml,其中color_filename.xml是自定义的)
res/values/colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
</resources>
获取颜色:
intcolor = getResources().getColor(R.color.black);
3定义尺寸(一般放在res/values/dimens.xml文件中,但也可以在res/values/dimens_filename.xml中,其中dimens_filename.xml是自定义的)
res/valuses/dimens.xml文件
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="height">80dp</dimen> </resources>
获取尺寸: float height = getResources().getDimension(R.dimen.height);
4定义drawable数组
res/values/filename.xml
<integer-array name="background_drawable">
<item>@drawable/female_pressed</item>
<item>@drawable/gd_search_marker_pressed</item>
<item>@drawable/ic_launcher</item>
<item>@drawable/male_pressed</item>
</integer-array>
或者
<string-array name="<span style="font-family: Arial, Helvetica, sans-serif;">ackground_drawable</span><span style="font-family: Arial, Helvetica, sans-serif;">"></span>
<item>@drawable/female_pressed</item>
<item>@drawable/gd_search_marker_pressed</item>
<item>@drawable/ic_launcher</item>
<item>@drawable/male_pressed</item>
</string-array>
TypedArray ar = getResources().obtainTypedArray(R.array.background_drawable);
final int len = ar.length();
final int[] resIds = new int[len];
for (int i = 0; i < len; i++){
resIds[i] = ar.getResourceId(i, 0);
}
ar.recycle();
final int[] resIds = getResources().getIntArray(R.array.background_drawable);
然后ImageView对象可以通过setImageResource方法设置图片资源,使用方式如下:
imageView.setImageResource(resIds[0]);
另外:以上四种方式,文件名称都可以自定义,因为通过java代码查找资源的时候,使用的是属性名称不是文件名称。为了便于自身查找,有些文件放在指定的路径下,比如定义尺寸的保存到res/valuses/dimens.xml。