1.src:存放全部的*.java源程序. java
2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存全部的资源ID. android
3.assets:能够存放项目一些较大的资源文件,例如:图片、音乐、字体等. 数组
4.res:能够存放项目中全部的资源文件,例如:图片(*.png、*.jpg)、文本等. 框架
5.res/drawable-hdpi:保存高分辨率图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 布局
6.res/drawable-ldpi:保存低分辩率图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 学习
7.res/drawable-mdpi:保存中等分辨率图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 字体
8.res/layout:存放全部的布局文件,主要是用于排列不一样的显示组件,在Android程序中要读取此配置. 动画
9.res/values: 存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称. this
.attrs.xml:自定义属性值的. spa
· arrays.xml:定义数组数据
定义以下:
<?xml version="1.0" encoding="utf-8" ?> <resources> <string-array name="MyArray"> <item name="1,35,3">第一</item> <item name="5,34,0">第二</item> </string-array> </resources>
Resources r = this.getResources(); String[] ary = r.getStringArray(R.array.MyArray);
colors.xml:定义表示颜色的数据;
dimens.xml:定义尺度,可使用Resources.getDimension()得到这些资源;
strings.xml:定义字符串,用Resources.getString()或Resources.getText()方法得到这些资源;
styles.xml:定义显示的样式文件;
10.res/raw:自定义的一些原生文件所在目录,像音乐、视频等文件格式.存放直接复制到设备中的任意文件.它们无需编译,添加到你的应用程序编译产生的压缩文件中.要使用这些资源,能够调用Resources.openRawResource(),参数是资源的ID也能够用,即R.raw.somefilename,Resources.getRawResource()方法能够得到这些资源.
11.res/xml:用户自定义的XML文件,全部的文件在程序运行时编译到应用程序之中,在程序运行时可使用Resources.getXML()方法获取.
12.res/anim:用于定义动画对象.存放定义了补间动画(tweened animation)或逐帧动画(frameby frame animation)的XML文件.(该目录下也能够存放定义property animations的XML文件,可是最好仍是分开存放)
13.res/animator:存放定义了propertyanimations(android 3.0新定义的动画框架)的XML文件
14.res/color/:存放定义了颜色状态列表资源(ColorState List Resource)的XML文件
15.res/drawable/:存放定义了图片状态列表资源(ColorState List Resource)的XML文件
16.res/menu/:存放定义了应用程序菜单资源的XML文件.
正确建立文件的方法:new Folder,名字menu,new Other——Android——XML,选择menu类型,填写名称,肯定便可.菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签做为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>.
注意:
res/ color文件夹,在这个文件夹下放的是color_selector.xml等文件,主要是用于背景色的selector,好比TextView中的textColor属性,点击改变TextView中的字体颜色,在这个文件中的文件color_selector.xml中定义以下:
主要的属性是android:color引用不一样的色值,而这些色值是在values/color.xml文件中定义的,好比:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="not_pressed">#000000</color> <color name="pressed">#ffffff</color> </resources>
同时也能够发现,在color_selector.xml中没有android:drawable属性,我不知道Android中是根据什么判断何时有android:drawable属性,何时有android:color属性的
下面来看一下res/drawable文件夹中的文件,这个文件夹中的文件drawable_selector.xml,主要是用于背景图的使用,Button中的android:background,点击改变背景,drawable_selecor.xml文件的定义:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:color="@color/not_pressed" /> <item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:color="@color/not_pressed"/> <item android:state_selected="true" android:color="@color/pressed" /> <item android:state_focused="true" android:color="@color/pressed" /> <item android:state_pressed="true" android:color="@color/pressed" /> </selector>
这里的info_collect_btn_normal_bg和info_collect_btn_pressed_bg是图片资源,放在drawableXX文件夹下的.
同时也发现了在drawable_selector.xml中没有android:color属性,结合上面的color_selector.xml中没有android:drawable属性,知道了Android应该是根据文件夹来判断的,在color文件夹下的文件有android:color属性,在drawable文件夹下的文件有android:drawable属性
同时还要注意的是:像textColor和background属性引用到的文件不能乱引用,好比textColor引用了drawable_selector.xml,background引用了color_selector.xml会报错的.因此要注意使用.
可是如今有个问题:假设Button如今想点击变成绿色,不点击变成红色,这时候怎么办?
首先确定要用background的属性-->那确定就要用drawable_selector.xml文件引用,因此在drawable_selector_.xml中将android:drawable="@drawable/info_collect_btn_normal_bg"改为android:drawable="@color/not_pressed"便可,这里可能有个误解就是android:drawable只能引用drawable资源,可是事实证实这个误解是多余的!原理能够参考attr详解.
本文转自: http://blog.csdn.net/jiangwei0910410003/article/details/16985955
20150601
ANDROID学习笔记系列
--------------------------------------------
联系方式
--------------------------------------------
Weibo: ARESXIONG
E-Mail: aresxdy@gmail.com
------------------------------------------------