在android中,我们经常使用资源文件的id来代替这个资源,如 R.drawable.*** ,

那怎样通过文件名得到这个资源的Id的,这里介绍两种方法:

一:通过getIdentifier (String name, String defType, String defPackage)方法。

这里有两种实现

1.name 用package:type/entry,那么后面两个参数可以为null.

2.name只写文件名(不要加后缀),后面两参数分别为文件类型和包路径。

二:通过反射机制:

给个demo: drawable文件夹中有一bluetooth.png图片

import java.lang.reflect.Field;

import android.app.Activity;
import android.os.Bundle;

public class GetResIdActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//方式一:
int resId1 = getResources().getIdentifier("bluetooth", "drawable", "com.shao.acts");
if(R.drawable.bluetooth==resId1){
System.out.println("TRUE");
}
//方式二:
int resId2 = getResources().getIdentifier("com.shao.acts:drawable/bluetooth", null, null);
if(R.drawable.bluetooth==resId2){
System.out.println("TRUE");
}
//方式三:
int resId3= getImage("bluetooth");
if(R.drawable.bluetooth==resId3){
System.out.println("TRUE");
}
}
public static int getImage(String pic) {
if(pic==null||pic.trim().equals("")){
return R.drawable.icon;
}
Class draw = R.drawable.class;
try {
Field field = draw.getDeclaredField(pic);
return field.getInt(pic);
} catch (SecurityException e) {
return R.drawable.icon;
} catch (NoSuchFieldException e) {
return R.drawable.icon;
} catch (IllegalArgumentException e) {
return R.drawable.icon;
} catch (IllegalAccessException e) {
return R.drawable.icon;
}
}

}

**************************************************************************************************

public class LocalImageManager {

private static LocalImageManager INSTANCE = null;

private HashMap<String, String> map = new HashMap<String, String>();

private LocalImageManager(){
initData();
}
public synchronized static LocalImageManager getInstance(){
if(INSTANCE == null){
INSTANCE = new LocalImageManager();
}
return INSTANCE;

}

private void initData(){
map.clear();
// 存放url对应的文件名(不能带有后缀)
map.put("http://www.baidu.com/a1.png", "a1");
map.put("http://www.baidu.com/a2.png", "a2");
map.put("http://www.baidu.com/a3.png", "a3");
map.put("http://www.baidu.com/a4.png", "a4");
}
/**
* 根据url获取本地的图片
* @param context 上下文
* @param url 图片url
*@return本地图片资源id
*/
public int getLocalImageByURL(Context context,String url) {
int resId = 0;
String picName = map.get(url);
resId = context.getResources().getIdentifier(
picName == null ? "no_picture" : picName, "drawable",context.getPackageName());

return resId;
}

}

***************************************************************************************

java 解析properties文件的两种方法
http://blog.csdn.net/huangyunzeng2008/article/details/5940808

测试用:config.properties
name=huangyz
password=huangyz@neusoft.com

package parse;

import java.util.*;
import java.io.*;

public class ParseProperties {
public static void main(String args[]) {

// 生成文件对象
File pf = new File(System.getProperty("user.dir")
+ "/src/config/config.properties");

// 生成文件输入流
FileInputStream inpf = null;
try {
inpf = new FileInputStream(pf);
} catch (Exception e) {
e.printStackTrace();
}

// 生成properties对象
Properties p = new Properties();
try {
p.load(inpf);
} catch (Exception e) {
e.printStackTrace();
}
// 输出properties文件的内容
System.out.println("name:" + p.getProperty("name"));
System.out.println("password:" + p.getProperty("password"));
}
}

更多相关文章

  1. android中对目录下的文件按时间排序
  2. Android7.0适配心得
  3. Android开发基础01——Android(安卓)SDK
  4. Android(安卓)HIDL官方文档(十)—— Converting Modules
  5. Android如何预置数据库或库文件
  6. android资源访问机制
  7. Drawable资源——Transition Drawable
  8. Android(安卓)Settings中的默认设置
  9. Android中MenuInflater实例

随机推荐

  1. Android之循环队列操作
  2. android matrix
  3. Google android 开发,配置,HelloWorld(演
  4. Android(安卓)Makefile 编译过程分析
  5. radiobutton设置自定义样式
  6. Android的MediaPlayer架构介绍
  7. Android(安卓)数组,集合,字典排序
  8. Android中的线程与进程模型
  9. Android获取CPU使用率的几种方式
  10. Android(安卓)源码结构【搜集】