`
zhiweiofli
  • 浏览: 512613 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android 由资源名称获得ID的方法

阅读更多

我的思路是,在string.xml文件里头建一个String-array,用来配置资源的名称,例如图片,使得外部的资源改变时,通过xml的配置免得去修改源程序:

 

	<string-array name="tab_icons">
		<item>g_more_detail</item>
		<item>g_reset_pw</item>
		<item>g_personal_info</item>
		<item>g_exit</item>
	</string-array>

 在某处引用该字符串数组:

Resources res = context.getResources();
String[] tab1 = res.getStringArray(R.array.tab_icons);

 以下方法为资源名称与资源ID的对换:

private ArrayList<Integer> names2Ids(String[] ss, Resources res){
	ArrayList<Integer> list = null;
	if(ss.length>0){
		list = new ArrayList<Integer>();
		for(int i=0; i<ss.length; i++){
			int id = res.getIdentifier(
                                                                  ss[i],   //资源名称的字符串数组
                                                                  "drawable", //资源类型
                                                                  "com.test");  //R类所在的包名
			list.add(id);
		}
	}
	return list;
}

  调用该方法:

Resources res = context.getResources();
private ArrayList<Integer> drawables01 = names2Ids(tab1, res);

 

使用以上方法,在一定的程度上提高了程序的可维护性,但是通过res.getIdentifier()方法来获得资源的ID,在去应用资源,其运行的效率,可真要掂量掂量,引用API上的注释:此方法不推荐使用,引用资源最好使用其全局的ID!

 

另外,通过ID获取资源名称的方法也十分简单:getResourceName(int resid)

分享到:
评论

相关推荐

    android 通过名字得到资源ID

    通过资源名称 获得资源的id package com.example.activitylibrary; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import ...

    基于Android中获取资源的id和url方法总结

    一、获取android工程里面的各种资源的id; 1.1 string型 比如下面: &lt;”OK”&gt;&gt; 客户端请求成功 &lt;&lt; / string&gt;&gt; //string资源中 名称为OK的 id 获取方式 int strId = getResources().getIdentifier(OK, ...

    Android应用程序资源的编译和打包过程分析1.pdf

    Android 应用程序资源的编译和打包过程是一个复杂的过程,涉及到 XML 资源文件的编译、资源 ID 和资源索引表的生成、ResourceTable 类的实现等多个方面。理解这个过程对于 Android 应用程序开发是非常重要的。

    Android移动开发实验4.doc

    " "(8)完成以上操作后,在"包资源管理器"中的项目名称节点上,单击鼠标 " "右键,在弹出的快捷菜单中,选择"运行方式/Android " "Application"菜单项通过模拟器运行程序。 " "四、程序调试(结果及分析) " " " ...

    新版Android开发教程.rar

    Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成用于系统维护。难点在于位置营销。 设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者进行赢利。 Google 自身通过基于统一平台为...

    fontAwsfont在android中的使用于资源文件

    3、在布局文件中添加textView组件,设置android:text属性 @string/xxx,xxx代表fontstrings中的name名称 android:id="@+id test" android:text="@string/tint20" /&gt; 4、Activity中进行如下设置 Typeface font= ...

    android换肤功能 如何动态获取控件中背景图片的资源id?

    这个换肤的方案原理就是,自身应用的资源名称是R.drawable.background,那皮肤包中应该也是这个名称,然后通过这个名称获取该资源在皮肤包中的具体id,代码: //先获取本地资源引用名称,type name是R.drawable....

    Android中资源文件(非代码部分)的使用概览

    Android中的资源访问 Android中的资源是指非代码部分,指外部文件。 assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取。 res中的资源可以通过...

    精通ANDROID 3(中文版)1/2

    3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5 使用资产  3.6 了解资源目录结构  3.7 资源和配置更改  3.8 参考资料URL  3.9 小结  ...

    基于将Android工程做成jar包和资源文件的解决方法

    为此,我们就不能直接使用R文件,而是要通过字段名称来动态的获取资源的id,再来使用。 以下封装了一个类,可以通过字段名称动态获取id。 代码如下:package com.arui.util; import android.content.Context; ...

    安卓Android多商家便利店销售购物商城APP+源代码+文档说明+数据库.zip

    商品类别: 类别id,类别名称,类别描述 商品: 商品id,商品类别,商品名称,商品主图,商品价格,商品描述,发布商家,发布时间 购物车: 购物车id,商品,用户,单价,购买数量 订单: 订单编号,下单用户,订单总金额,支付方式,...

    android视频播放器实训报告.doc

    实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" ...

    CustomResManage.java

    通过资源名称,资源类型,程序包名获取资源的映射ID,通过对应的资源获取方法,获取该ID对应的资源对象 例如: 获取string资源: int id = context.getResources().getIdentifier(iconName, "string", context....

    安卓Android电影院订票app设计可升级Studio+源代码+文档说明+数据库.zip

    安卓Android电影院订票app设计可升级Studio 开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse(手机客户端) + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC...

    android视频播放器实训报告(1).doc

    实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" ...

    安卓Android医院门诊预约系统app+源代码+文档说明+数据库.zip

    科室: 科室id,科室名称 医生: 医生编号,登录密码,所在科室,姓名,性别,医生照片,学历,入院日期,联系电话,每日出诊次数,附加信息 预约: 预约id,预约用户,预约医生,预约日期,预约时间段,出诊状态,医生说明 时间段: ...

    安卓Android车辆运输信息管理App可升级Studio+源代码+文档说明+数据库.zip

    2、驾照类型: 类型id,类型名称 3、车辆: 车牌,车型,品牌,油型,耗油量,车险,总里程(公里),维修次数,车辆备注 4、车型: 车型id,车型名称 5、运输单: 记录id,驾号,车牌,运输货物,重量(吨),需要时间,起始地,目的地,公里...

    分享一个牛逼的android开发框架,看着好屌的样子

    A、创建注入类,属性名称必须和layout中的id对应,如果不对应请加入标签@SNInjectView class DemoInject{ @SNInjectView(id=R.id.tvTest) public SNElement test; } B、实例化注入对象 DemoInject di=new ...

    Android实训报告.doc

    20 4.4计算示例: 21 五、课程设计(实训)总结 21 一、实训背景及目的要求 1.1背景简介 Android(读音:['ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用 于便携设备,目前尚未有统一中文名称,...

Global site tag (gtag.js) - Google Analytics