使用其他资源
来源:互联网 发布:淘宝联盟高佣活动在哪 编辑:程序博客网 时间:2024/06/06 19:23
一、使用任意XML资源文件
Android允许将任意XML文件用作资源。首先,Android提供了一种快速方式来根据所生成的资源ID引用这些文件;其次,该方法允许本地化这些资源XML文件;再次,可以在设备上高效地编译和存储这些XML文件。需要以此方式读取的XML文件存储在/res/xml子目录下。
(1)示例XML文件
<span style="font-family:SimSun;font-size:14px;"><rooteleml><subeleml> Hello World from an xml sub element </subeleml></rooteleml></span>
(2)读取XML文件
就像处理其他Android XML资源文件一样,AAPT将编译此XML文件,然后将它放入应用程序包中。如果希望解析这些文件,需要使用一个XmlPullParser实例。
<span style="font-family:SimSun;font-size:14px;">Resources res = activity.getResources();XmlResourceParser xpp = res.getXml(R.xml.test);</span>
返回的XmlResourceParser是XmlPullParser的一个实例,它还实现了java.util.AttributeSet。
(3)使用XmlPullParser
<span style="font-family:SimSun;font-size:14px;">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();}</span>
二、使用原始资源
Android还支持使用原始文件。这些原始资源位于/res/raw下,包括音频、视频或文本文件等需要本地化或通过资源ID引用的原始文件资源。与/res/xml下的XML文件不同,这些文件没有编译,而是按原样转移到应用程序包中。但是,每个文件在R.java中都会生成一个标识符。
(1)读取原始资源
<span style="font-family:SimSun;font-size:14px;">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;}</span>
注:具有重复基础名称的文件名称会在Ecplise ADT插件中生成编译错误,为文件资源生成的所有资源ID就属于这种情况。
三、使用资产
Android还提供了一个/assets目录,可以将要包含在包中的文件放在这里。这个目录与/res具有相同的级别,/assets中的文件不会在R.java中生成资源ID,必须指定文件路径才能读取它们。文件路径以/assets开头的相对路径。
(1)读取资产
<span style="font-family:SimSun;font-size:14px;">String getStringFromAssetFile( Activity activity ){AssetManager am = activity.getAssets();InputStream is = am.open("test.txt");String s = convertStreamToString(is);is.close();Return s;}</span>
- Android使用其他资源
- 使用其他资源
- 不使用其他资源实现两个数值互换
- flex 嵌入其他资源
- 其他的torrent资源
- 37其他资源
- 其他博客的资源
- android 把activity和资源文件打包成jar包给其他项目使用
- android 把activity和资源文件打包成jar包给其他项目使用
- android把activity和资源文件打包成jar包给其他项目使用
- 国际化中,资源字符串中使用translatable声明不用翻译成其他语种
- 用Android studio多渠道打包以及使用不同资源(包括icon或者其他图片等)
- 无法访问局域网内其他电脑(其他资源)
- Drawable资源资源使用
- 【iOS开发-52】如果要模仿练习,如何找到其他应用程序的icon、使用框架等资源?
- 我的其他代码资源存放处
- mfc复用其他程序的资源
- 如何从其他应用程序中“借用”资源。
- 数据结构的堆栈、内存中的堆栈
- Ceph集群磁盘没有剩余空间的解决方法
- mongodb里日期类型的时区问题
- Windows下写用于python的C扩展模块
- 使用Mantle处理Model层对象
- 使用其他资源
- 访问修饰符
- gdb调试技巧
- SpringMVC+Spring+Hibernate搭建实例
- cocos定时器分析
- 博弈知识汇总
- C# 可空类型
- POJ 题目分类
- 文件特殊权限:SUID, SGID, SBIT