首页 > 移动平台 > 详细

Android Activity介绍

时间:2017-04-12 04:30:51      阅读:200      评论:0      收藏:0      [点我收藏+]

1. Activity生命周期

Activity的生命周期图如下所示

技术分享

Activity生命周期的几个过程如下:
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

更多信息, 参考<基础总结篇之一:Activity生命周期>

2. Activity布局

2.1 布局种类

Activity有如下布局
线性布局(LinearLayout)
表格布局(TableLayout)
相对布局(RelativeLayout)
绝对布局(AbsoluteLayout)   - Deprecated since API level 3
框架布局(FrameLayout)
网格布局(GridLayout)          - Added in API level 14
约束布局(ConstraintLayout)  - Added in API level 9

这些布局都可以嵌套使用.

2.2 基本属性

布局文件都有两个最基本的属性, 宽和高

android:layout_width       match_parent/wrap_content  --- 设置控件宽度
android:layout_height      match_parent/wrap_content  --- 设置控件高度

对于主布局文件, 通常设置为match_parent, 表示适应整个屏幕
注意:  Android 2.2 之前使用的是fill_parent, 如今google建议使用match_parent.

其他常用公共属性如下:

android:layout_gravity     bottom/center/...   --- 设置该控件相对与父控件的位置
android:layout_margin+方位  固定值px             --- 设置控件边缘相对父控件的边距
android:padding+方位         固定值px             --- 设置控件内容相对本控件边缘的边距
android:background         固定值                  --- 设置控件的背景

/* Android 4.2引入 */
android:layoutDirection inherit/locale   --- 设置组件的布局排列方向
android:textDirection   inherit/locale   --- 设置组件的文字排列方向
android:textAlignment   gravity/center   --- 设置文字的对齐方式

更多属性, 参考<Android layout属性大全>

2.3 线性布局

线性布局(LinearLayout)就是将各种控件按照行或者列依次进行排列

布局属性:

android:orientation       vertical/horizontal --- 设置布局的排列方向

控件属性:

android:gravity           bottom/center/...   --- 设置控件内容的位置
android:layout_weight Integer --- 设置控件所占空间的权重

实例请参考: <Activity线性布局和表格布局>

2.4 表格布局

表格布局(TableLayout)以行列的形式管理子控件, 每一行为一个TableRow的对象或者一个控件的对象
TableRow可以添加子控件, 每添加一个代表一列.
TIP: 表格布局继承自线性布局.

布局属性:

/* 列从0开始, 多个列的话用","分隔 */
android:collapseColumns --- 设置需要被隐藏的列
android:shrinkColumns   --- 设置允许被收缩的列
android:stretchColumns  --- 设置允许被拉伸的列

控件属性:

android:layout_column   --- 设置该控件在TableRow中所在列。
android:layout_span     --- 设置该控件所跨越的列数

实例请参考: <TableLayout(表格布局)>

2.5 相对布局

相对布局(RelativeLayout)是一种以控件之间相对位置或相对父容器位置进行排列的布局方式.

控件属性:

/* 控件相对控件位置, 值是另外一个控件ID */
android:layout_above             --- 位于给定控件之上
android:layout_below             --- 位于给定控件之下

android:layout_toLeftOf          --- 位于给定控件左边
android:layout_toRightOf         --- 位于给定控件右边

android:layout_alignLeft         --- 左边与给定ID控件的左边对齐
android:layout_alignRight        --- 右边与给定ID控件的右边对齐
android:layout_alignTop          --- 上边与给定ID控件的上边对齐
android:layout_alignBottom       --- 底边与给定ID控件的底边对齐

android:layout_alignBaseline     --- 对齐到控件基准线

/* 控件相对父容器位置, 值是true或false */
android:layout_alignParentLeft   --- 相对于父靠左
android:layout_alignParentTop    --- 相对于父靠上
android:layout_alignParentRight  --- 相对于父靠右
android:layout_alignParentBottom --- 相对于父靠下

android:layout_centerInParent    --- 相对于父即垂直又水平居中
android:layout_centerHorizontal  --- 相对于父即水平居中
android:layout_centerVertical    --- 相对于父即处置居中

/* Android 4.2以上新属性, 值是另外一个控件ID */
android:layout_alignStart        --- 将控件对齐给定ID控件的头部
android:layout_alignEnd          --- 将控件对齐给定ID控件的尾部
android:layout_alignParentStart  --- 将控件对齐到父控件的头部
android:layout_alignParentEnd    --- 将控件对齐到父控件的尾部

更多信息, 参考<Android 相对布局>

参考:
<Android ConstraintLayout详解>
<
Android五大布局介绍&属性设置大全>

Android Activity介绍

原文:http://www.cnblogs.com/hzl6255/p/6696210.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!