android在xml文件中定义drawable数组、id数组等

简介:

假如我们需要在代码中为一组view设置相对应的一组图片资源时(如为listview/gridview的所有item设置一组对应的图片时),我们就可以在xml中定义一组代表图片的drawable数组,然后用代码进行读取。

开始我是这样做的:

[java]  view plain copy
  1. <integer-array name="actions_images">  
  2.     <item>@drawable/pencil1</item>  
  3.     <item>@drawable/pencil2</item>  
  4.     <item>@drawable/pencil3</item>  
  5.     <item>@drawable/pencil4</item>  
  6.     <item>@drawable/pencil5</item>  
  7.     <item>@drawable/pencil6</item>  
  8. </integer-array>  

然后在代码中 试图 调用getResources().getIntArray来获取图片的id,可发现根本行不通。最终查stackoverflow给出了解决办法:

1、在xml中要这样定义:

[java]  view plain copy
  1. <string-array name="actions_images">  
  2.     <item>@drawable/pencil1</item>  
  3.     <item>@drawable/pencil2</item>  
  4.     <item>@drawable/pencil3</item>  
  5.     <item>@drawable/pencil4</item>  
  6.     <item>@drawable/pencil5</item>  
  7.     <item>@drawable/pencil6</item>  
  8. </string-array>  

2、在java代码中这样来获取:

[java]  view plain copy
  1. TypedArray ar = context.getResources().obtainTypedArray(R.array.actions_images);  
  2. int len = ar.length();       
  3. int[] resIds = new int[len];       
  4. for (int i = 0; i < len; i++)       
  5.     resIds[i] = ar.getResourceId(i, 0);  
  6.   
  7. ar.recycle();    

图片的id就保存在resIds中去了,然后我们就可以引用它(比如用img.setImageResourse(resIds[0]))来设置图片了。


同理,要想在xml中定义id数组,做法一样。



参考:http://stackoverflow.com/questions/6945678/android-storing-r-drawable-ids-in-xml-array

相关文章
|
12月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
339 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
1600 83
|
12月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
967 19
|
12月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
2714 2
|
XML 存储 JSON
Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
428 0
|
XML Android开发 数据格式
Android 解析AndroidManifest.xml文件
1. 格式解析 1). AndroidManifest.xml文件格式 看雪大神--原图地址 图1.png 图中可以清晰的看出AndroidManifest.
1460 0
|
XML Android开发 数据格式
Android XStream 解析xml数据变成bean,支持CDATA
参考 1、Android 用 XStream 将复杂xml解析为javabean 2、XStream支持CDATA标签 3、Retrofit 用Soap协议访问WebService 详解 实例 留着上一篇retrofit访问webservice后,...
2078 0
|
XML Android开发 数据格式