我们知道,Activity是安卓的四大组件之一,负责手机界面的展示和交互。那么他与Window和View是什么关系呢。
下面,我们看一个简单的界面:
它的布局文件如下,很简单:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hello,world"
android:textSize="20sp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"/>
</LinearLayout>
接着我们用android的sdk所带的工具hierarchyviewer.bat来看看,这个界面到底有哪些元素,截图如下:
从最左边开始看,标号1的地方,有个PhoneWindow和DecorView,可见,PhoneWindow是整个界面的窗口,DecorView是整个界面的根View。标号2是手机的顶部状态栏,标号3是一个id为content的FrameLayout,标号4是一个LinearLayout,这个正是我们在布局文件里设置的元素。那么Android代码里是怎么做的呢。我们看一下我们的Activity代码。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
Activity只做了一件事,就是 setContentView,点进去看看源码。