Activity
1、Activity是Android项目应程序中的交互接口。
2、可以简单理解为屏幕上的一个窗口,应用每打开一个新的屏幕窗口,都对应打开了一个Activity。
3、Activity仅仅是窗口这个容器,类似于一块黑板,在黑板上写什么内容,需要专门的绘制工具实现内容的绘制。
Android中,负责绘制和显示内容的是通过View和ViewGroup,以及其一系列的派生子类进行实现。
View
1、View指的是界面上显示的一个视图空间,比如按钮,输入框,单选框,复选框等都是视图。
2、所有的视图控件均继承自View类,即所有的视图空间都是View的子类。
所有的Android控件,又称为Widget,都是View的子类。
ViewGroup
在Android中,ViewGroup继承自View,表示的是容纳View的容器,主要的作用是装在和管理下一层的View对象或者ViewGroup对象。
View和ViewGroup的关系
如图是View和ViewGroup的关系图。
从上图中可以看到,View是被包裹在ViewGroup容器中的,而ViewGroup中既可以包含View,也可以包含ViewGroup,实现嵌套。
Layout 布局
翻译为界面布局,主要的作用是为应用程序提供界面架构。用于控制Activity中的控件的大小、位置、颜色等一些列属性。
在Android中,依据ViewGroup派生的一些容器,可以用来作为整个视图的布局。ViewGroup派生出了:AbsoluteLayout、FrameLayout、GridLayout、LinearLayout、RelativeLayout、SlidingDrawer等。
LinearLayout 线性布局
1、顾明思议按照水平方向或者垂直方向进行控件的摆放。
2、特有属性:
- orientation:该属性用于指定布局中的排列方式,有两种:horizontal水平布局,vertical垂直布局。默认使用水平布局方式。
- layout_weight:该属性表示权重,除去被显示占据的空间以外的空间,然后根据权重的大小来分配空间,使用权重通常会把分配该权重方向的宽度设置为0dp,如果未设置0dp,则该空间会占据指定的宽度。
3、常用属性:
- id:为组件定义唯一指定标识符,不可重复,方便在Activity中通过id进行获取该控件;
- layout_width:指定布局宽度,通常有两种选项:wrap_content表示自动包裹,控件实际宽度。match_parent:填充父容器宽度。
- layout_height:指定布局高度,值选项同layout_width一样。
- gravity:指定布局容器包含的子控件的对齐方式。可选值包括:left、right、center。
- layout_gravity:该属性用于指定
- layout_margin:外边距,布局或者控件距离外部元素的边距。通常设置一个具体的值。
- layout_padding:内边距,布局或者控件距离内部子控件的边距,通常设置一个具体的值。
RelativeLayout 相对布局
子控件之间或者子控件和容器之间关于相对位置描述的布局。
关于RelatvieLayout的一些属性,可以分为两类:
1、相对于容器(父布局)的属性:
- layout_centerVertical:设置是否相对于父布局垂直居中,属性值为true
- layout_centerHorizontal:设置是否相对于父布局水平居中,属性值为true
- layout_centerInParent:设置是否相对于父布局居中(水平和垂直方向都均居中),属性值为true
- layout_alignParentTop:设置在父布局的顶部,属性值为true
- layout_alignParentBottom:设置在父布局的底部,属性值为true
- layout_alignParentRight:设置在父布局的右侧,属性值为true
- layout_align