Android使用其他资源

1.使用任意XML资源

要被读取的XML文件存储在/res/xml子目录下

如:/res/xml/test.xml

<rootelem1>
	<subelem1>
		Hello World
	</subelem1>
</rootelem1>

读取XML文件:

Resources res = activity.getResources();
XmlResourceParser xpp = res.getXml(R.xml.test);

使用XmlPullParser:

private String getEventsFromXMLFile(Activity activity) throws XmlPullParserException, IOException{
	StringBuffer sb = new StringBuffer();
	Resources res = activity.getResources();
	XmlResourceParser xpp = res.getXml(R.xml.test);
	
	xpp.next();
	int eventType = xpp.getEventType();
	while(eventType != XmlPullParser.END_DOCUMENT){
		if(eventType == XmlPullParser.START_DOCUMENT){
			sb.append("**Start document");
		}else if(eventType == XmlPullParser.START_TAG){
			sb.append("\nStart tag "+xpp.getName());
		}else if(eventType == XmlPullParser.END_TAG){
			sb.append("\nEnd tag "+xpp.getName());
		}else if(eventType == XmlPullParser.TEXT){
			sb.append("\nText "+xpp.getText());
		}
		eventType = xpp.next();
	}
	sb.append("\n**End document");
	return sb.toString();
}

2.使用原始资源

原始资源位于/res/raw下,这些资源没有编译,按原样转移到应用程序包中

如:/res/raw/test.txt 

读取原始资源:

String getStringFromRawFile(Activity activity) throws IOException{
	Resources r = activity.getResources();
	InputStream is = r.openRawResource(R.raw.test);
	
	ByteArrayOutputStream baos = new ByteArrayOutputStream();
	int i = is.read();
	while(i != -1){
		baos.write(i);
		i = is.read();
	}
	String myText = baos.toString();
	is.close();
	return myText;
}


3. 使用资产

/assets未包含在/res字文件中,所以资产中的文件不会自动生成R.java中的资源ID,必须指定文件路径才能读取他们,文件路径是/assets开头的相对路径

可以使用AssetManager类访问这些文件

AssetManager am = activity.getAssets();
InputStream is = am.open("test.txt");


你可能感兴趣的:(android)