通过上一篇文章,大概了解了Android用户界面的设计方式,以及如何通过XML来设计界面。并且完成了一个非常简单的示例。

在上一篇文章中,涉及到了一些资源文件,直观点说,就是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中会存在像这样一段代码:

public static final class layout {
public static final int main=0x7f030001;
}

这里面的main就是由res/layout/main.xml生成的。

接下来在看一下,如何在Java代码中使用这个R.java,创建一个文件Main.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. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}

注意这其中的R.layout.main,通过setContextView(),被Java程序调用。

这段代码中引入了另外一个非常重要的概念:Activity,到目前为止,已经介绍的另外两个比较重要的概念是ViewGroup和View。如果套用时髦的MVC来理解的话:ViewGroup和View属于View领域的东西,Activity可以理解为Control领域的东西,虽然可以这 么类比着来理解,但是Activity其实做了更多的事情,由它将View和一些数据、操作等结合在一起,完成一个相对完整的行为、活动。所以,任何 View要被显示,必须通过Activity来进行。这样每个Activity都会包含特定的行为,多个Activity互相合作,最终组成一个完整的 Android程序。

在示例的Activity中,有一个onCreate()方法,这个方法会在此Activity被创建的时刻调用。在方法内部,设置此Activity的视图为R.layout.main中定义的视图,也就是res/layout/main.xml中定义的视图 (视图、布局、GUI、UI在这里已经混合使用了,并且他们意义相同,后文统一用View表示)。

Activity所包含的内容很多,会用单独的一篇文章来详细介绍。

说到此处,我们应该知道如何创建一个View,并通过Activity将其显示在屏幕上。接下来事情,就是用户如何和这个Activity交互。

[待续]

Tags: , ,

19 Responses to “设计Android的用户界面(二)”

  1. 和谁一起搞的Studio呀?

  2. Hello! deaeadf interesting deaeadf site!

  3. Very nice site! cheap viagra

  4. Very nice site! [url=http://opxyiea.com/yoyraso/2.html]cheap cialis[/url]

  5. Very nice site! cheap cialis http://opxyiea.com/yoyraso/4.html

  6. Very nice site!

  7. Hello!
    cialis ,

  8. Hello!
    cheap cialis ,

  9. Hello!
    cialis ,

  10. Hello!
    cialis ,

  11. Hello!
    cheap cialis ,

  12. Hello!
    cialis ,

  13. Hello!
    buy cialis ,

  14. Hello!
    viagra ,

  15. Hello!
    tramadol ,

  16. Hello!
    xanax ,

  17. http://www.roiding.com is very great. I liked your blog a lot. Thank you.

  18. http://www.roiding.com is great! Health and wealth are some things that must never go unattended The reason why people generally look out for quick payday loans is because the money can be got within a matter of hours sometimes within just an hour What could be sweeter news

  19. YicDtM

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>