`
zhiweiofli
  • 浏览: 514935 次
  • 性别: 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值

    在Android开发过程中,资源ID(Resource ID)是系统为应用中的资源分配的唯一标识符,通常以`R.`开头,用于在代码中引用这些资源。然而,在某些特殊情况下,我们可能需要修改这些ID的值。这通常是由于资源冲突、调试...

    android 通过资源字符串获得对应ID

    ### Android 通过资源字符串获得对应ID 的方法 在Android开发过程中,经常需要处理资源文件,例如从数据库中读取图片名称后动态加载对应的图片资源。本文将详细介绍如何通过资源字符串获取其对应的资源ID,并提供两...

    android 由图片名称获取图片的ID

    - 在Android SDK中,没有直接的方法可以让我们通过资源名称获取ID。但是,我们可以实现一个自定义的方法来完成这个任务。首先,我们需要遍历R.java文件(通常是通过反射来访问,因为它是编译时生成的),找到对应...

    android由图片名称获取图片的ID.rar

    然后可以使用`getIdentifier`方法来通过资源名称和类型查找ID,如下所示: ```java int resourceId = context.getResources().getIdentifier("image_name", "drawable", context.getPackageName()); ``` 这里的...

    Android 获得图片的方法

    一旦获得了资源ID,就可以按照前面介绍的方式继续获取`Drawable`或`Bitmap`对象了。 #### 三、从assets目录获取图片资源 如果图片被放置在项目的`assets`目录下,可以通过以下步骤获取: 1. **通过输入流打开图片...

    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 通过图片名称获取 drawable 目录下的图片

    1. **获取资源ID**:通过反射机制获取到`R.drawable`类中对应图片名称的资源ID。 2. **设置资源**:利用获取到的资源ID将图片设置到视图组件上。 #### 代码详解 下面是一段示例代码,演示了如何通过图片名称动态...

    android资源文件详解

    资源文件的引用方式通常有两种,一种是通过资源ID直接引用,另一种是通过资源名称引用。资源ID是在R.java文件中生成的,这个类文件包含对所有资源的引用,而资源名称的引用则是在XML文件中使用的"@[package:]type/...

    Android常用资源Map

    Android中的资源Map通常是指Resources类的getIdentifier()方法返回的整数值与资源名称之间的映射关系。开发者可以通过资源ID(整数值)快速访问到对应的资源,而资源ID通常是在R.java文件中自动生成的。这个方法允许...

    Android资源命名规范

    以下是对Android资源命名规范的详细解释: 1. **缩写选择**: - `ic`:代表图标(Icon),通常用于应用的图标资源。 - `bg`:代表背景(Background),用于布局或子布局的背景图像。 - `di`:代表分隔线...

    Android Layout ID Converter

    【Android Layout ID Converter】是一款专为Android开发者设计的高效工具,它主要功能是帮助开发者快速地将布局文件(layout XML)中的元素ID转换为可读性更强的形式,从而提高代码的可维护性和团队协作效率。...

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

    Android 中获取资源的 id 是通过 getResources().getIdentifier() 方法实现的,该方法需要三个参数:资源名称、资源类型和包名。下面是获取不同类型资源 id 的示例代码: 1.1 获取 string 资源 id String 资源是一...

    Android xml资源文件中@、@android、@+以及问号的使用详解

    例如,android:id="@+id/button",这里的@+id/button 便是创建了一个名为button的资源ID。 需要注意的是,@+ 的含义是在 R.java 中名为type 的内部类中添加一条记录。如果标示符已经存在,则表示引用该标示符。 @...

    Android中实现根据资源名获取资源ID

    总之,`getIdentifier`方法为Android开发者提供了一种从资源名获取资源ID的途径,尤其适用于需要动态解析资源的情况。然而,为了提高应用性能,应尽可能避免频繁使用此方法,并优先考虑直接使用资源ID进行访问。

    Android高级应用源码-Android 开启指定名称和密码的 Wifi热点 demo.rar

    在Android平台上,开发一款能够开启指定名称和密码的WiFi热点的应用是一项高级功能,这涉及到对Android系统的网络服务和Wi-Fi管理API的深入理解。在这个"Android高级应用源码-Android 开启指定名称和密码的Wifi热点 ...

    android换肤功能简单

    - `SkinPluginImpl`:这可能是实现皮肤加载功能的类,可能包含了对皮肤资源的加载逻辑和资源ID的映射方法。 - `ChangeSkinDemo`:这是一个示例项目或者类,用于展示如何切换皮肤,可能包含了启动皮肤更换过程的代码...

    android读取raw和assets下资源文件demo

    `res/raw`目录是Android资源系统的一部分,它允许开发者将非XML格式的资源文件(如音频、视频、文本文件等)放入应用中。这些资源会被赋予一个唯一的ID,通常以`R.raw.*`的形式表示,其中`*`是你文件的原始名称。...

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

    在Android应用开发中,实现换肤功能是一项...这需要对Android资源系统、Context和Drawable有深入的理解,并编写适当的逻辑来处理各种情况。同时,注意性能优化,避免遍历整个布局的开销过大,确保用户体验的流畅性。

Global site tag (gtag.js) - Google Analytics