android应用下除了res目录用于存放资源之外,assets目录也用于存放资源。一般来说,assets目录下存放的资源代表应用无法直接访问的原生资源,应用程序需要通过AssetManager以二进制流的形式读取资源。
android资源的分类:
1)无法通过R清单类访问的原生资源,保存在assets目录下。
2)可以通过R资源清单类访问的资源,保存在res目录下。
/res/animator | 存放定义属性动画的XML文件 |
/res/anim | 存放定义补间动画的XML文件 |
/res/color | 存放定义不同状态下颜色列表的XML文件 |
/res/drawable | 该目录下存放各种位图文件(如*.png、*.9.png,*.jpg,*.gif)除此之外也可以是编译成如下各种drawable对象的XML文件: BitmapDrawable NinePathDrawable对象 StateLIstDrawable对象 ShapeDrawable对象 AnimationDrawable对象 Drawable的其他各种子类的对象 |
/res/layout | 存放各种用户界面的布局文件 |
/res/menu | 存放为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单 |
/res/raw | 该目录下存放任意类型的原生资源 |
/res/values | 存放各种简单值的XML文件,这些简单值包括字符串值、整数值、颜色值、数组等。 这些资源文件的根元素都是<resources../>元素,我们为该<resources../>元素添加不同的子元素代表不同的资源。 string/integer/bool 元素:代表添加一个字符串值、整数值或者bool值。 color子元素:代表一个颜色值 array子元素或者string-array,int-array子元素:代表添加一个数组。 style子元素:代表添加一个尺寸。 建议使用不同的文件存放不同类型的值。 arrays.xml 定义数组资源 colors.xml 定义颜色值资源 dimens.xml 定义尺寸值资源 strings.xml 定义字符串资源 styles.xml 定义样式资源 |
/res/xml | 任意的原生XML文件。这些XML文件可在java代码中使用resources.getXML()方法进行访问 |
java代码中获取资源可以通过Resources类获取resource=context.getResources()
1)getXXX(int id) 根据资源清单ID来获取实际资源。
2)getAssets():获取访问/assets/目录下资源的AssetManager对象。然后调用AssetManager.openRawResource(int id)获取二进制输入流。