首页 > 代码库 > Android转载二:工程目录详解

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中怎么把值给取出来呢?笔者总结如下: