Android UI的重要概念
Android UI 的最重要的三个概念,Activity、View、Layout。
下面对这三个概念作一个初步的理解,先浅尝辄止。这样做的目的是先了解一下这些概念,从总体上对这些概念有一个把握和串通,方便后面的学习。
(一)Activity
1.Activity启动流程
一个应用程序至少有一个Activity。且必须有一个默认的启动Activity。
Android应用程序启动的流程如下:
首先,Android操作系统会去访问你的应用程序中的AndroidManifest.xml这个文件,决定启动哪一个Activity。启动默认的Activity之后,会生成这个Activity的对象,一般情况下是MainActivity。生成这个对象后,会去调用这个对象的onCreat方法。然后在onCreate方法里去读取layout目录下的activity_main.xml布局文件,来决定在应用程序里显示什么内容。
2.Activity与布局文件
我们可以在布局文件里修改文字显示的样式,比如
1 android:textSize="80px" 2 android:background="#FF0000"
所有在res里的文件都会在gen目录里R.java这个文件里生成ID,布局文件也有它的ID。
1 public static final class layout { 2 public static final int activity_main=0x7f030000; 3 }
R.layout.activity_main就代表这个布局文件
然后在activity的onCreate函数中
1 protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_main); 4 }
setContentView就是显示布局文件的内容。
3.在Activity中获取代表控件的对象
为了满足动态显示的需要,写死在布局文件里的控件显然是不行的。
因此我们用代码取代布局,如图所示。这样就可以动态的控制控件的样式。
下面这行就是获取代表控件的对象:
1 TextView textView = (TextView)findViewById(R.id.textView);
这涉及到View对象,下面就开始介绍View。
(二)View
1.什么是View
View就是控件。如下图:
每一种控件都对应有一个类,View是所有控件的父类。
2.在Activity中获取代表View的对象
首先,我们需要在layout文件里给控件加上一个唯一的ID:
1 android:id="@+id/textView"
然后,在Activity里声明这个控件:
1 private TextView textView;
注:这里需要引用textView所在的包
1 import android.widget.TextView;
在Activity的函数里用findViewById获取这个View,由于findViewById函数的返回类型是View,所以需要向下转型为TextView:
注:这里不是生成对象,只是找到这个对象,对象的生成是由布局文件完成的。
1 textView = (TextView)findViewById(R.id.textView);
3.设置View的属性
转型完毕以后可以在Activity中对这个控件进行修改,控制它的属性。例如:
1 textView.setText(“hello world”); 2 textView.setBackgroundColor(Color.BLUE);
在布局里能做到的事情绝大部分代码里也能做到。