AssetManager assetet=getAssets();
InputStream is=assetset.open("文件名");
res
res资源放在项目根目录的res子目录下。其中保存的大部分文件都会被编译并分配资源ID。这样我们就可以在程序中通过ID来访问res类的资源了。 res资源根据用途不同可以进一步分为以下9个子类型:
animatoranimcolordrawablelayoutmenurawvaluesxml
animator
res/animator 目录下存放animator 等资源文件。它们主要用于描述属性动画。我对属性动画做了一个总结。您可以检查如何使用animator 目录中的文件。
anim
此类资源文件存放在res/anim目录下。它主要用于描述补间动画。我对补间动画做了一个总结。您可以查看如何使用anim目录中的文件以及如何添加它们。动画属性
color
此类资源以XML文件的形式保存在res/color目录下,用于描述对象的颜色状态选择。例如,您可以指定对象在不同状态下显示不同的颜色。对象的状态可以分为7 种类型:按下、聚焦、选择、可检查、选中、启用和window_focused。
?xml 版本="1.0"编码="utf-8"?
drawable
此类资源以XML 或Bitmap 文件形式保存在res/drawable 目录中,用于描述可绘制对象。例如,我们可以在里面放置一些图片(.png、9.png、jpg、gif)作为程序界面视图的背景图片。请注意,此目录中保存的位图文件可能会在打包过程中进行优化。例如,不需要超过256 色的真彩色PNG 文件可能会转换为仅具有8 位调色板的PNG 面板,从而允许对图像进行无损压缩,以减少图像使用的内存资源。
layout
这一类资源是我们最常用的。通常以XML文件的形式保存在res/layout目录下,主要用于编写应用程序界面布局。
menu
此类资源以XML 文件形式保存在res/menu 目录中,用于描述应用程序菜单,例如选项菜单、上下文菜单和子菜单
raw
此类资源以任意格式的文件保存在res/raw目录中。和assets资源一样,它们都被打包在apk文件中,不做任何改变,但是它们会被分配资源ID,所以我们可以在程序中通过ID来访问它们。例如,假设res/raw目录下有一个名为filename的文件,在编译过程中,分配给它的资源ID为R.raw.filename,那么可以使用下面的代码来访问它:
资源res=getResources();
输入流=res .openRawResource(R.raw.filename);
values
此类资源以XML文件的形式保存在res/values目录下,用于描述一些简单的值,如数组、颜色、大小、字符串和样式。一般来说,这六个不同的值存储在名为arrays.xml、colors.xml、dimens.xml、strings.xml 和styles.xml 的文件中。
xml
此类资源以XML文件的形式存储在res/xml目录下,一般用于描述应用程序的配置信息。
需要注意的是,上述9种资源文件中,除了Bitmap文件的raw类型资源和drawable类型资源外,其他资源文件都是文本格式的XML文件。它们在打包过程中将被编译成二进制格式。 XML 文件。这些二进制格式的XML文件每个都有一个字符串资源池,用于保存文件中引用的每个字符串,包括XML元素标签、属性名称、属性值以及所有其他文本值使用的字符串。这样,文本格式XML文件中原来放置字符串的每个位置都被替换为索引到字符串资源池的整数值。这样做有两个好处:
好了,关于Android 资源管理框架:Asset Manager 快速指南和的问题到这里结束啦,希望可以解决您的问题哈!
【Android 资源管理框架:Asset Manager 快速指南】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我一直想学习一下 Android 资源管理系统~ 这篇文章正好能给我一些启发!
有7位网友表示赞同!
之前不太了解 Asset Manager,这篇文章能帮我更好地理解它是怎么运作的?
有18位网友表示赞同!
开发 Android App 时常常用到资源文件,了解 Asset Manager 的功能真挺有用的啊。
有16位网友表示赞同!
学习编程过程中,对资源管理一直有点困惑,希望这篇文章能给我一些答案!
有17位网友表示赞同!
Asset Manager 听起来很专业,但其实操作起来是不是很简单?
有15位网友表示赞同!
想把我的 Android 应用程序打包成一个独立的文件,不知道 Asset Manager 有什么帮助?
有5位网友表示赞同!
平时开发 App 时大多是利用默认的资源管理机制,感觉Asset Manager 这方面可以了解更多。
有5位网友表示赞同!
学习了解一些新的框架和知识永远都没有过错!
有6位网友表示赞同!
这篇文章介绍的对象是不是那些常用的图片、音频等文件?
有12位网友表示赞同!
我需要在 Android 应用中加载一些自定义的数据文件, Asset Manager 会管吗?
有8位网友表示赞同!
对开发新手来说,Asset Manager 可能会比较难理解,希望这篇介绍能够讲得通俗易懂。
有20位网友表示赞同!
学习Android的资源管理 really cool!这个框架听起来很强大。
有14位网友表示赞同!
Asset Manager 可以用于进行什么样的资源操作?比如修改资源吗?
有13位网友表示赞同!
看了标题感觉可以学到很多有用的知识,期待深入了解。
有8位网友表示赞同!
我想写一个能运行在不同设备上的 Android 应用, Asset Manager 能怎么帮到我?
有12位网友表示赞同!
"简要介绍" 意味着这篇文章会重点讲解哪些内容呢?
有19位网友表示赞同!
Asset Manager 的使用场景有哪些?可以举一些具体的例子吗?
有20位网友表示赞同!
对于一个 Android 应用来说,资源管理的意义是什么?
有8位网友表示赞同!
这个框架是否适用于所有类型的 Android 应用?
有20位网友表示赞同!
看了标题后,感觉这篇介绍应该很好阅读懂吧。
有16位网友表示赞同!