我的思路是,在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)
分享到:
相关推荐
通过资源名称 获得资源的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; 1.1 string型 比如下面: <”OK”>> 客户端请求成功 << / string>> //string资源中 名称为OK的 id 获取方式 int strId = getResources().getIdentifier(OK, ...
Android 应用程序资源的编译和打包过程是一个复杂的过程,涉及到 XML 资源文件的编译、资源 ID 和资源索引表的生成、ResourceTable 类的实现等多个方面。理解这个过程对于 Android 应用程序开发是非常重要的。
" "(8)完成以上操作后,在"包资源管理器"中的项目名称节点上,单击鼠标 " "右键,在弹出的快捷菜单中,选择"运行方式/Android " "Application"菜单项通过模拟器运行程序。 " "四、程序调试(结果及分析) " " " ...
Android 的 App Market 模式,软件开发者获得 7 成收入, 3 成用于系统维护。难点在于位置营销。 设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者进行赢利。 Google 自身通过基于统一平台为...
3、在布局文件中添加textView组件,设置android:text属性 @string/xxx,xxx代表fontstrings中的name名称 android:id="@+id test" android:text="@string/tint20" /> 4、Activity中进行如下设置 Typeface font= ...
这个换肤的方案原理就是,自身应用的资源名称是R.drawable.background,那皮肤包中应该也是这个名称,然后通过这个名称获取该资源在皮肤包中的具体id,代码: //先获取本地资源引用名称,type name是R.drawable....
Android中的资源访问 Android中的资源是指非代码部分,指外部文件。 assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取。 res中的资源可以通过...
3.1.5 已编译和未编译的Android资源 3.2 Android关键资源 3.3 使用任意XML资源文件 3.4 使用原始资源 3.5 使用资产 3.6 了解资源目录结构 3.7 资源和配置更改 3.8 参考资料URL 3.9 小结 ...
为此,我们就不能直接使用R文件,而是要通过字段名称来动态的获取资源的id,再来使用。 以下封装了一个类,可以通过字段名称动态获取id。 代码如下:package com.arui.util; import android.content.Context; ...
商品类别: 类别id,类别名称,类别描述 商品: 商品id,商品类别,商品名称,商品主图,商品价格,商品描述,发布商家,发布时间 购物车: 购物车id,商品,用户,单价,购买数量 订单: 订单编号,下单用户,订单总金额,支付方式,...
实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" ...
通过资源名称,资源类型,程序包名获取资源的映射ID,通过对应的资源获取方法,获取该ID对应的资源对象 例如: 获取string资源: int id = context.getResources().getIdentifier(iconName, "string", context....
安卓Android电影院订票app设计可升级Studio 开发环境: Myclipse/Eclipse/Idea都可以(服务器端) + Eclipse(手机客户端) + mysql数据库 系统客户端和服务器端架构技术: 界面层,业务逻辑层,数据层3层分离技术,MVC...
实训报告书 实训名称: Android视频播放器 系 (部): 专业班级: 学生姓名: 学 号: 指导教师: 完成日期: "实训课题 "Android视频播放器 " "实训人姓名 " "同组人员 " " "实训日期 " " "实训成绩 " " "指导教" ...
科室: 科室id,科室名称 医生: 医生编号,登录密码,所在科室,姓名,性别,医生照片,学历,入院日期,联系电话,每日出诊次数,附加信息 预约: 预约id,预约用户,预约医生,预约日期,预约时间段,出诊状态,医生说明 时间段: ...
2、驾照类型: 类型id,类型名称 3、车辆: 车牌,车型,品牌,油型,耗油量,车险,总里程(公里),维修次数,车辆备注 4、车型: 车型id,车型名称 5、运输单: 记录id,驾号,车牌,运输货物,重量(吨),需要时间,起始地,目的地,公里...
A、创建注入类,属性名称必须和layout中的id对应,如果不对应请加入标签@SNInjectView class DemoInject{ @SNInjectView(id=R.id.tvTest) public SNElement test; } B、实例化注入对象 DemoInject di=new ...
20 4.4计算示例: 21 五、课程设计(实训)总结 21 一、实训背景及目的要求 1.1背景简介 Android(读音:['ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用 于便携设备,目前尚未有统一中文名称,...