控制UI界面的四种方法:
使用XMl布局文件控制UI界面:不灵活
- 在Android应用的res/layout目录下编写xml布局文件,包含对组件的属性设置。
- 属性的设置是以“
android:属性名=
”的方式设置的 在Activity中使用java代码引用布局文件:
SetContentView(R.layout.布局文件名)
在java代码中控制UI界面:灵活但实现复杂
- 不使用布局文件,通过在java代码中new布局和组件进行布局。 一个activity启动回调的第一个函数就是onCreate。这个函数主要做这个activity启动的一些必要的初始化的工作。 布局代码要写在oncreate()方法的super语句的后面。
- 创建布局管理器对象,将布局对象通过
SetContentView(布局管理器对象)
添加到当前页面。直接使用,无需使用对象调用 - 创建一些要显示的组件,添加属性或点击事件等等:通过组件名进行实例化对象,并通过“
对象.SetXXX()
”和其他方法进行添加属性 - 通过“
布局管理器对象.addView()
”方法将组件添加到布局管理器中
xml文件和java文件混合使用
- 将布局代码或简单的组件代码放置于xml文件,复杂组件的代码放置于java代码。 布局代码要写在oncreate()方法的super语句的后面。
- 在Activity中将布局管理器添加到当前页面
SetContentView(R.layout.布局文件名)
- 在类体(不是方法)中定义成员变量,用于保存组件对象或图片资源等
- 定义xml布局管理器对象,通过
findViewByid(R.id.布局id名)
方法找到布局管理器对象并赋值 - 定义xml中组件对象,通过
findViewByid(R.id.组件id名)
方法找到组件对象并赋值 - 组件通过“
对象.SetXXX()
”和其他方法进行添加属性 通过“布局管理器对象.addView()
”方法将组件添加到布局管理器中
注意:setContentView必须要放在findviewbyid之前,因为view在加载之前是无法引用的。所以这种方式,只能先SetContentView(R.layout.布局文件名),再findviewByid布局对象。
开发自定义的view
- 一般在xml布局文件中采用FrameLayout(帧布局)的布局方式。 自定义编写java类,继承View类。 在View类中,至少有一个构造方法
- 重写
OnDraw
方法,绘制组件属性 - 在Activity中将布局管理器添加到当前页面
SetContentView(R.layout.布局文件名)
- 在Activity创建并实例化自定义的View类 在Activity中将实例化view通过
addView()
方法添加到布局管理器中