Android转载二:工程目录详解
REF:http://blog.csdn.net/dianfusoft/article/details/7422540
可以看出这个工程由src,gen,Android2.3.3 jar包,assets,bin,res,AndroidManifest.xml,proguard.cfg,project.properties这几个文件(夹)组成,具体作用如下所示:
下面分层次详解几个重要的文件(夹)
● src文件夹
展开这个文件夹如下所示
可以看出,这个文件夹主要用来存放源文件
●gen文件夹
展开这个文件夹如下所示:
这个R.java文件是系统自动生成的文件,非常的重要。这个R.java默认有attr,drawable,layout,string 4个静态内部类,每个类对应一种资源。例如我们在工程中添加一幅图片,那么工程就会在此类的drawable内部类中添加一条数据,如果删除了此图片,工程则会自动删除此条数据。由此可见,R.java类似于电脑中的“注册表”,这么形容应该不过分吧!
那么我们怎么通过R.java文件引用添加的资源呢?
(1) 在Java程序中,我们通过Java语法来引用资源
① R.resource_type.resource_name
例如,我们要引用工程目录下此文件
我们可以通过R.drawable.ic_launcher获得,因为此为图片文件,所以会在R.java文件的drawable内部类中注册信息
② Android. R.resource_type.resource_name
上面这个图片我们也可以用android. R.drawable.ic_launcher获得
(2) 在xml文件中引用资源
① @[package:]type/name
使用我们自己包下的资源可以省略包名。
在XML文件中,main.xml和AndroidMainFest.xml文件中如果想要引用上图的资源,我们可以通过“@drawable/ic_launcher”获得,这个表达式的意思是,@代表R.java类,drawable则代表R.java类中的静态内部类,而/ ic_launcher则代表静态内部类drawable中的属性ic_launcher,这个属性则对应上图中的那个图片!
② 如果访问android系统中的资源,那么则需要加上包名“android:”,如:
android:textColor=“@android:color/red”
(3)“@+id/string_name”表达式
在布局文件中我们需要给一些组件添加id,就可以使用此表达式。此表达式“+”表示在R.java文件的内部静态类id中添加一个静态变量“string_name”,如前面我们的代码:
[html] view plaincopyprint? <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" />
现在你清楚是什么意思了吧?
● res文件夹
展开这个文件夹如下所示:
其中drawable-hdpi用来存放高质量图片,drawable-ldpi用来存放低质量图片,drawable-mdpi用来存放中等质量的图片。
而layout文加件下面的main.xml文件则是页面布局文件。在eclipse里面我们打开此文件时选择“Graohical Layout ”模式编辑文件时,我们可以直接拖动各种空间快速进行编辑,选择“main.xml”模式则可以查看源代码,如下所示:
当然在values文件夹下还有一重要文件string.xml,此文件主要用来定义字符串和数值,其实在这个文件夹下面还可以存放arrays.xml(用来定义数组),colors.xml(用来定义颜色和颜色字串数值),dimens.xml(用来定义尺寸数值),styles.xml(用来定义样式)。
既然是存值,那么我们在Activity中怎么把值给取出来呢?笔者总结如下: