android项目目录结构系列二

1780阅读 0评论2014-12-05 vaqeteart
分类:Android平台

3、res/layout/目录下的布局文件简介

本例中的布局文件是 ADT 默认自动创建的“activity_main.xml”文件。在 Eclipse 中,双击 “activity_main.xml”文件打开。.

与在网页中布局中使用 HTML 文件一样,Android 在 XML 文件中使用 XML 元素来设定屏幕布局。每个文件包含整个屏幕或部分屏幕,被编译进一个视图资源,可以被传递 给 Activity.setContentView 或被其他布局文件引用。文件保存在工程的 res/layout/ 目录 下,它被 Android 资源编辑器编译。

三、gen目录介绍

image

3.1.1 R.java文件基本介绍

    R.java 文件中默认有 attr、drawable、layout、string 等静态内部类,每个静态内部类分别对应一种资源,如 layout 静态内部类对应 layout 中的界面文件,其中每个静态内 部 类 中 的 静 态 常 量 分 别 定 义 一 条 资 源 标 识 符 ,如 “ public static final int main=0x7f030000;”对应的是 layout 目录下的 main.xml 文件。具体的对应关系,如下图。

image

    展开后看到,所有的资源文件ADT 会在 R.java 文件中相应的匿名内部类当中自动生成一条静态 int 类型的常量,对添加的文件进行索引。

R.java 文件会给我们开发程序带来很大的方便,比如在程序中我们使用“public static final int icon=0x7f020000;”就可以找到其对应的 icon.png 这幅图片。

R.java 文件除了有自动标识资源的“索引”功能之外,还有另一个主要的功能,当 res 目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源 编译到该应用的 APK 包中,这样可以节省 Android 手机的资源

 3.1.2 组件标识符

    通过对 R.java 文件的介绍,我们已经了解了 R 文件的索引作用,它可以检索到我们应用中需要使用的资源。下面介绍如何通过 R.java 文件来引用到所需要的资源。

1. 在 Java 程序当中,我们可以按照 Java 的语法来引用。

1) R.resource_type.resource_name

需要注意的是,resource_name 不需要文件的后缀名。比如说上面的 icon.png 文件的资源标识符可以通过如下方式获取。R.drawable.icon

2) android.R.resource_type.resource_name

Android 系统本身自带了很多的资源,我们也可以进行引用,只是需要在前面加上 “android.”以声明该资源来自 Android 系统。

2. 在 XML 文件中引用资源的语法如下:

1) @[package:]type/name

使用我们自己包下的资源可以省略 package。

在 xml 文 件 中 , 如 main.xml 以 及 AndroidMainfest.xml 文 件 中 通 过 “@drawable/icon”的方式获取。其中“@”代表的是 R.java 类,“drawable”代表 R.java中的静态内部类“drawable”,“/icon”代表静态内部类“drawable”中的静态属性“icon”。而该属性可以指向 res 目录下的“drawable-*dpi”中的 icon.png 图标。其他类型的文件也比较类似。凡是在 R 文件中定义的资源都可以通过

“@ Static_inner_classes_name/resourse_name”的方式获取。如”,“@string/app_name”。

2) 如果访问的是 Android 系统中带的文件,则要添上包名“android:”。如 android:textColor="@android:color/red" 。

3. “@+id/string_name”表达式

顺便说一下,在布局文件当中我们需要为一些组件添加 Id 属性作为标示,可以使用如 下的表达式“@+id/string_name”其中“+”表示在 R.java 的名为 id 的内部类中添加一条 记录。如 "@+id/button"的含义是在 R.java 文件中的 id 这个静态内部类添加一条常量名为button,该常量就是该资源的标识符。如果 id 这个静态内部类不存在,则会先生成它。通 过该方式生成的资源标识符,仍然可以以”的方式引用。示例代码片段如下。

1.

2. android:layout_height="wrap_content">

3.

上一篇:shell echo
下一篇:Ubuntu root 密码忘记-恢复