【转帖】设计Android的用户界面(二)
在上一篇文章中,涉及到了一些资源文件,直观点说,就是res目录下的那些目录和文件,常用的有:
?res/drawable/ 用来存放图片文件
?res/layout/ 用来存放布局定义文件
?res/values/ 用来存放一些变量、参数等文件
这些资源文件都是独立于代码而存在的,那么在代码中又是如何访问到这些资源的呢?
在 Android的代码中,有一个文件比较奇怪,第一次接触到Android代码的人都应该迷惑过,这个文件就是R.java,在R.java的注释部分, 有这样一段话:“AUTO-GENERATE FILE. DO NOT MODIFY”,这个文件是自动生成的,不要修改。
?这个文件就是Java代码和独立于Java代码的资源文件之间的访问窗口,Java程序可以通过R.java来访问那些资源文件。
?这个文件是在程序编译过程中由aapt(Android Asset Packaging Tool) 自动生成
?这个文件中的属性都是public static final的,所以可以直接在Java代码中引用,每个属性都代表一个资源,看起来就像为每个资源都定义了一个ID,然后通过这个ID来访问资源
?所有的资源文件都被编译进最后生成的二进制包中,这样能够带来很高的性能和效率
按照前面的示例,那么在R.java中会存在像这样一段代码:
package com.roiding.study;import android.app.Activity;import android.os.Bundle;public class Main extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}}