`

Android中原始资源、任意xml资源和资产的使用

阅读更多

1.任意xml资源文件
    除了结构化资源外,Android还允许将任意xml文件用作资源。此方法将使用资源的优势延伸到了任意xml文件。首先,它提供了一种快速方式来根据所生成的资源ID引用这些文件。其次,该方法允许本地化这些资源xml文件。再次,可以在设备上高效地编译和存储这些xml文件。需要以此方式读取的xml文件存储在/res/xml子目录下。
    就像处理其他Android XML资源文件一样,AAPT(Android Asset Packaging Tool)将编译此XML文件为二进制文件,然后将它放入应用程序包中。如果希望解析这些文件,需要使用一个XmlpULLParser实例。
private String getEventsFromAnXMLFile(Context 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();
		}// eof-while
		sb.append("\n******End document");
		return sb.toString();
	}// eof-function


2.原始资源
    除了任意XML文件,Android还支持使用原始文件。这些原始资源位于/res/raw下,包括音频、视频或文本文件等需要本地化或通过资源ID引用的原始文件资源。与/res/xml下的XML文件不同,这些文件没有编译,而是按原样转移到应用程序包中。但是,每个文件在R.java中都会生成一个标识符。
    假设将文本文件放在/res/raw/test.txt下,能用以下代码读取该文件。
private String getStringFromRawFile(Context activity) throws IOException {
		Resources r = activity.getResources();
		InputStream is = r.openRawResource(R.raw.test);
		String myText = convertStreamToString(is);
		is.close();
		return myText;
	}

	private String convertStreamToString(InputStream is) throws IOException {
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		int i = is.read();
		while (i != -1) {
			baos.write(i);
			i = is.read();
		}
		return baos.toString();
	}


3.资产
    Android还提供了一个/assets目录,可以将要包含在包中的文件放在这里。这个目录与/res具有相同的级别,也就是说它还未包含在/res子目录中。/assets中的文件不会在R.java中生成资源ID,必须指定文件路径才能读取它们。文件路径是以/assets开头的相对路径。可以使用AssetManager类来访问这些文件。
// Note: Exceptions are not shown in the code
	String getStringFromAssetFile(Context activity) throws IOException {
		AssetManager am = activity.getAssets();
		InputStream is = am.open("test.txt");
		String s = convertStreamToString(is);
		is.close();
		return s;
	}
分享到:
评论

相关推荐

    Android-Android国际化文档整理xml和excel互转

    "Android-Android国际化文档整理xml和excel互转"项目主要关注如何方便地管理和转换Android应用中的本地化资源。 一、Android的国际化原理 Android的国际化是通过资源文件夹来实现的。在项目的`res`目录下,我们...

    android String.xml Excel 相互转换工具

    为了方便管理这些多语言资源,Android使用`String.xml`文件来存储应用中的文本字符串。然而,手动编辑这些XML文件既耗时又容易出错,尤其是在处理大量文本时。这时,就需要借助一些工具进行`String.xml`与Excel之间...

    android qq 图片 xml资源包

    "android qq 图片 xml资源包" 指的是从QQ的apk应用程序文件中提取出的图像资源和相关的XML配置文件。这些资源通常包括了应用内的各种图形元素,如按钮、图标、背景等,而XML文件则用于定义它们的属性和行为。 QQ,...

    android中apk包中的xml文件解密

    在Android开发中,APK是应用程序的打包文件格式,它包含了应用的所有资源、代码和配置。XML文件在APK中扮演着重要的角色,用于存储布局、字符串、颜色、动画等资源。由于APK文件通常是二进制格式并进行了加密处理,...

    【Android Studio代码】xml数组资源

    用Android Studio 2.3.3做的从xml文件获取数组资源例子,主要用到的代码有: String[] sDataS = this.getResources().getStringArray(R.array.NumberList);、ArrayAdapter<String> arrayAdapter = new ArrayAdapter...

    将AndroidStudio 的 VectorDrawable xml 资源逆向转回 svg文件

    自制工具,将AndroidStudio 的 VectorDrawable xml 资源逆向转回 svg文件方便编辑。工具为带js的html,上方输入框贴入xml,下方输入框输出svg代码结果以及svg预览 注意目前仍未支持渐变填充

    android读写xml文件

    android中读写xml文件简单demo,可以通过此代码来简单的读取xml配置文件

    【android开发】解析assets文件夹下XML资源文件

    在Android应用开发中,我们经常会遇到需要处理非原始资源(如XML文件)的情况。这篇教程主要聚焦于如何从assets文件夹下读取并解析XML资源文件。assets文件夹是Android项目中的一个特殊目录,用于存储应用程序运行时...

    android颜色xml配置

    XML颜色配置是Android系统提供的一种灵活、可维护的颜色资源管理方式,允许开发者在XML文件中定义和使用颜色,而非直接在代码中硬编码。这种方式有助于保持代码的整洁,提高代码的可读性和可复用性,同时也方便进行...

    android开发之xml文件操作——xml创建和pull解析xml

    本项目主要关注的是XML的创建和使用Pull解析器来解析XML,这是Android系统中处理XML数据的一种高效方法。接下来,我们将详细讨论这两个知识点。 首先,XML(Extensible Markup Language)是一种用于标记数据的语言...

    Android中修改资源ID值

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

    六,Android Xml解析

    这种方法既节省内存又易于使用,是Android开发中的首选解析方式,尤其适用于读取XML配置文件和流式数据。 在Android框架中,XML解析广泛应用于以下几个方面: 1. **布局解析**:Android应用的界面布局通常定义在...

    android使用pull 解析xml文件源码

    pull解析xml文件,和sax和dom一样 都可以脱离android单独使用,pull和sax的原理一样,不一样的地方是pull读取xml文件后调用方法返回的是数字, 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 ...

    android分辨率适配,xml自动生成工具

    在Android系统中,屏幕适配主要通过使用不同密度和尺寸的资源文件夹来实现。例如,ldpi(低密度),mdpi(中密度),hdpi(高密度),xhdpi(超高清)等是密度相关的文件夹,而sw360dp,sw480dp等则对应不同的屏幕...

    【Android Studio代码】xml字符串资源

    用Android Studio 2.3.3做的获取xml的字符串资源例子,主要用到的代码有:String sData = getString(R.string.app_name).toString();xml定义字符串资源<string name="app_name">NewApp006是自动生成的,用户也可以...

    android反编译xml、layout

    在Android应用开发中,APK是应用程序的二进制包,包含了代码、资源文件和配置信息。当开发者希望深入理解已有的APK或者对它进行逆向工程时,就需要使用到像`apktool`这样的工具。`apktool`是一个开源的Android反编译...

    Android解析XML使用WebView显示

    以上就是“Android解析XML并使用WebView显示”的主要技术点,开发者需要理解并掌握这些知识点,才能在实际项目中顺利实现这一功能。通过不断实践和学习,我们可以更好地理解和运用这些工具,提升应用的质量和用户...

    Android颜色资源文件color.xml

    颜色齐全,并且包含中文颜色注释,可直接复制到项目工程中使用

    android资源文件详解

    合理地使用和管理资源文件可以提高应用的性能,并且使得应用更容易维护和国际化。文档《android资源文件详解》深入解析了res文件夹下各种资源的组织和使用方式,为开发者提供了关于如何在Android应用中高效利用资源...

    android的xml文件的解析

    总结,XML解析是Android开发中的基础技能,了解并掌握DOM和SAX解析方式可以帮助开发者更有效地处理XML文件。选择合适的解析方式取决于具体的应用场景和性能需求。在实际项目中,还有一种基于SAX的拉式解析库——PULL...

Global site tag (gtag.js) - Google Analytics