您的位置:首页 > 其它

res文件夹和assets文件夹

2016-04-21 19:49 204 查看
resource —— Android AssetPackaging Tool (aapt)

——gen/R.java资源索引文件

assets(与resource同级)

resource级下文件命名一定要规范,不然会报错:

1.animator 存放定义了property animations(属性动画) 的XML文件

2.anim 存放定义了补间动画(tweened animation)或

逐帧动画(frame by frame animation)的XML文件。

(该目录下可以存放定义property animation 的XML文件,但是最好还是分开放)

3.raw 存放直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。要使用这些资源,可以调用Resource.openRawResource(),参数是资源的ID,即R.raw.filename。

4.drawable 存放能转换为绘制资源(Drawable Resource)的位图文件(后缀为 .png \ .9.png \ .jpg \ .gif 的图像文件)或者定义了绘制资源的xml文件。保存在这个目录中的Bitmap文件在打包的过程中,可能会被优化的。

5.color 存放定义了颜色状态列表资源(Color State List Resource)的XML文件。

6.layout 存放定义了用户界面布局的XML文件

7.menu 存放定义了应用程序菜单资源的XML文件

8.values 存放定义了多种类型资源的XML文件,这些资源的类型可以是字符串、数据、颜色、尺寸、样式等等

9.xml 存放任意的XML文件,在运行时可以通过调用Resource.getXML()读取。

value文件夹下放置:

string 存放定义的string。
stringArray  存放定义的字符串数组。
XML中调用时使用entries。
代码时调用时用 :getResource()实例化Resource,
使用其.getStringArray(R.array.里面放置StringArray的名字)方法。
QuantityString
Integer
IntegerArray
TypedArray
bool
dimension
color
将xml文件或者程序中用到的中文或者其他文字打包到string文件或者
stringArray文件中,可以在修改的时候减少不必要的麻烦,在国际化
中,更换文字也更方便,也减少了冗余。像在程序或者xml中经常用到
的颜色、尺寸、布局style等都可以打包到value文件夹下。


menu文件夹下:

选项菜单、子菜单 、上下文菜单
前两项的创建:onCreateOptionMenu(menu)
后一项的创建:onCreateContextMenu()
为视图注册上下文菜单:
在activity中OnCreate函数中调用
registerForContextMenu()方法。
<menu>标签是根元素,他没有属性,可包含<item>和<group>子元素。
<group>标签表示一个菜单组,相同的菜单组可以一起设置其属性,
例如visible、enabled和checkable等属性。
具体罗列说明如下:
id:唯一标示该菜单组的引用id
menuCategory:对菜单进行分类,定义菜单的优先级,
有效值为container、system、secondary和alternative
orderInCategory:一个分类排序整数
checkableBehavior:选择行为,单选、多选还是其他。
有效值为none、all和single
visible:是否可见,true或者false
enabled:是否可用,true或者false


assets文件夹:

它里面保存的是一些原始的文件,可以以任何方式来进行组织。这些文件最终会被原装不动地打包在apk文件中。

如果我们要在程序中访问这些文件,那么就需要指定文件名来访问。例如,假设在assets目录下有一个名称为 filename 的文件,那么就可以使用以下代码来访问它:

AssetManager am= getAssets();

InputStream is = assset.open(“filename”);

Android中asset文件夹和res文件夹下的raw文件夹区别:

raw和assets的相同点:

1、在打包后会原封不动的保存在apk包中,不会被编译成二进制

在res文件夹下的9种类型的资源文件,除了raw类型资源,以及Bitmap文件的 drawable类型资源之外,其它的资源文件均为文本格式的XML文件,它们在打包的过程中,会被编译成二进制格式的XML文件。

raw和assets的不同点:

1、raw中的文件是位于res文件夹下的,所以会被映射到R.java文件中,在程序中访问的时候可以直接使用资源ID 即R.id.filename;assets文件夹下的文件不会赋予ID,不会映射到R.java中,在程序访问的时候需要使用 AssetManager 类。

AssetManager am= getAssets();

InputStream is = assset.open(“filename”); // 获取输入流读取文件

2.assets目录下可以再建立文件夹,而raw文件夹下不可以在建文件夹

在程序中读取文件资源的方式:

1.读取raw下的文件资源,通过以下方式获取输入流来进行写操作

InputStream is =getResources().openRawResource(R.id.filename);

2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

AssetManager am = getAssets();

InputStream is = am.open(“filename”);

注意1:在AssertManager中不能处理单个超过1MB的文件,
raw没限制
注意2:assets 文件夹是存放不进行编译加工的原生文件,
即该文件夹下不会有xml、java文件可被编译的文件,
可以存放一些图片、html、js、css等文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: