| 站点地图 | 联系我
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 上善若水 厚德载物
 现在位置 :: 主页 >> 资料中心 >> ROOT / CODE / Mobile 编程 / Android 安卓 /
 

Android res/values/array的用法

来源(CSDN博客)

From: https://blog.csdn.net/abfdada/article/details/52127414

Android res/values/array的用法

原创 2016年08月05日 11:24:16 标签:android /array-xml /图片数组 4122

1,建立array.xml文件

· 首先在res/values/ 文件夹里 new-ValueResource file点击后命名为 array.xml

· 注意:这里名字并不是一定要写为array.xml,这样写只是一个约定,安卓里控件的查找都是通过R文件里的id实现的.

2,用法

2.1 用于单纯的表示一组字符串 string-array

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="home_service_title">
        <item >Elder</item>
        <item >Utiluties</item>
        <item >Hosl&amp;Cli</item>   <!-- 特殊字符要转义-->
        <item> Passport</item>
    </string-array>
</resources>


通过String[] titles =getResources().getStringArray(R.array.home_service_title);就可以会的含有文件里定义的所有数组元素.

2.2用于单纯的表示一组数字 integer-array

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array name="home_service_number">
        <item >1</item>
        <item >2</item>
        <item >3</item>
        <item >4</item>
    </integer-array>
</resources>


通过int[] numbers =getResources().getIntArray(R.array.home_service_title);就可以会的含有文件里定义的所有数组元素.

2.3 用来表示一组图片位置的引用integer-array

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array name="home_service_image">
        <item >@mipmap/u16</item>
        <item >@mipmap/u16</item>
        <item >@mipmap/u21</item>
        <item >@mipmap/u16</item>
    </integer-array>
</resources>


通过代码:

TypedArray mTypedArray = getResources().obtainTypedArray(R.array.home_service_image);
for (int i = 0; i <getResources().getIntArray(R.array.home_service_image).length; i++) {
	int imageId=mTypedArray.getResourceId(i, R.mipmap.u23);//第一个参数为 :所取图片在数组中的索引,第二个参数为:未找到时,返回的默认值id。
}
mTypedArray.recycle();//用完记得要recycle


根据索引 i 获得每个图片的id后就可以

imageView.setImageResource(imageId);  //  给imageView设置图片


总结通过integer-array存储图片位置只是一种方法,array文件的用法很灵活,这里只是为了介绍存储图片总结的文章,因为array文件存储极为灵活,同时也可以用来作为二维数组的引用.

getResources().getStringArray(R.array.name);//获得String[]
getResources().getIntArray(R.array.name);//获得int[]
TypedArray mTypedArray = getResources().obtainTypedArray(R.array.home_service_image);//获得任意类型

mTypedArray. mTypedArray.getResourceId(int index, int defValue);//获取R.array.home_service_image)里index索引下的对象
mTypedArray.recycle();//mTypedArray用完记得要recycle


有兴趣可以看一下http://blog.csdn.net/x0343/article/details/17114837可以有点启发

Link: http://www.asm32.net/article_details.aspx?id=7274


浏览次数 0 发布时间 2018/4/7 15:12:34 从属分类 Android 安卓 【评论】【 】【打印】【关闭
 
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 京ICP备09029108号-1