基本控件
控件名称 | 控件的作用 |
---|---|
View | Android中所以控件的最顶层的基类 |
TextView | 主要作用用来显示文字,它相当于Panel |
ImageView | 它的主要作用用来显示图片 |
EditText | 它表示输入框,可编译,又可以进行设置软键盘方式 |
Button | 可以显示按钮,并且可以附加图片 |
CheckBox | 它表示复选框 |
RadioButton | 它表示单选按钮<其中这个要和RadioGroup配合着使用> |
View类的常用的属性
属性的名称 | 属性的作用 |
---|---|
android:id | 这一属性用来 设置控件的标识符号 |
android:layout_width | 用来 设置子组件的布局宽度 |
android:layout_height | 用来 设置子组件的布局高度 |
android:background | 这个主要作用是 设置控件的背景颜色 |
android:onClick | 用来 设置控件的单击事件绑定监听器 |
android:padding | 用来 设置子组件的内边距 |
android:layout_margin | 用来 设置子组件的外边距 |
android:layout_height和android:layout_height的属性
1.wap_content,其包裹内容为<根据具体的内容的大小调整其中控件的大小>
2.fill_parent:其功能是填充父控件<从Android2.1开始已经被match_parent所替代>
3.match_parent:其功能是填充父控件
TextView简介
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:background | 用来设置控件的背景颜色 |
android:text | 用来显示文字的内容 |
android:textSize | 用来设置文字的大小 |
android:textColor | 用来设置文字的颜色 |
android:gravity | 用来控制控件中内容的位置 |
android:textAlignment | 用来设置文字的对齐方式 |
使用TextView来实现跑马灯的效果
要实现上述功能需要以下的属性:
1.android:singleLine=“tuue”
2.android:elipsize=“marquee”
3.android:foucsable=“true”
4.android:focusablelnTouchMode=“true”
5.可以选用的属性:
android:marqueeRepeatLimit
说明:
使用上述所说的跑马灯的效果的前提
1.文本内容必须要超出控件的宽度
3.必须单行显示
Button简介
Button继承来自TextView中所以具有TextView的所以属性
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:background | 用来设置控件的背景颜色 |
android:text | 用来显示文字的内容 |
android:textSize | 用来设置文字的大小 |
android:textColor | 用来设置文字的颜色 |
android:gravity | 用来控制控件中内容的位置 |
android:textAlignment | 用来设置文字的对齐方式 |
咋们看一下例图:
注册监听事件用以下四种方式
1.设置android:onClick的属性
2.成员内部类
3.匿名内部类
4.把当前Activity实现监听接口
EditText简介
EditText类它继承了来自TextView所以具有的属性
两者区别:
1.TextView是用来显示一个文字的控件
2.EditText是TextView的子类是可以输入文字的控件
其他的用法基本一致
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:background | 用来设置控件的背景颜色 |
android:text | 用来显示文字的内容 |
android:textSize | 用来设置文字的大小 |
android:textColor | 用来设置文字的颜色 |
android:gravity | 用来控制控件中内容的位置 |
android:textAlignment | 用来设置文字的对齐方式 |
CheckBox简介
CheckBox继承自Button,CheckBox提供了可选中的功能
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:background | 用来设置控件的背景颜色 |
android:text | 用来显示文字的内容 |
android:textSize | 用来设置文字的大小 |
android:textColor | 用来设置文字的颜色 |
android:gravity | 用来控制控件中内容的位置 |
android:textAlignment | 用来设置文字的对齐方式 |
ImageView简介
它继承自View
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:layout_alignParentStart | 紧贴着父元素结束位置的开始 |
android:layout_alignParentLeft | 把当前的控件的左侧与父控件的左侧对齐 |
android:layout_marginStart | 设置控件一开始位置的距离 |
android:layout_marginLeft | 用来设置离左边框的距离 |
RadioButton简介
RadioButton继承自Button,在使用RadioButton的时候,要使用RadioGroup来包围RadioButton
RadioGroup是LinearLayout的子类,从根本上来理解它RadioGroup是一个存放RadioButton的布局容器
属性名称 | 属性的作用 |
---|---|
android:id | 用来设置控件的标识符号 |
android:layout_width | 用来设置组件布局的宽度 |
android:layout_height | 用来设置组件布局的高度 |
android:background | 用来设置控件的背景颜色 |
android:text | 用来显示文字的内容 |
android:textSize | 用来设置文字的大小 |
android:textColor | 用来设置文字的颜色 |
android:gravity | 用来控制控件中内容的位置 |
android:textAlignment | 用来设置文字的对齐方式 |
看一下具体的实例
Activity的介绍
一般情况下,Android程序的流程都运行在activity中,activity具有自己的生命周期,由系统来控制。可以使用onSaveInstanceState()和onRestoreInstanceState()方法来保存和恢复状态。activity之间通过Intent来进行跳转和数据传输。
activity的生命周期如图所示
由上图可知Activity生命周期有三个关键的循环:
1、整个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。
Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。
2、可见的生命周期,从onStart()开始到onStop()结束。
在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart()中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。
3、前台的生命周期,从onResume()开始到onPause()结束。
在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个 Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。
常见的生命周期过程:
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在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互,则这个Activity处于活动状态。 |
暂停状态 | 当Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能与用户进行交互,则这个Activity处于暂停状态。 |
停止状态 | 当Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡,则这个Activity处于停止状态。 |
非活动状态 | 活动状态、暂停状态和停止状态是Activity的主要状态,不在以上三种状态下的Activity的则处于非活动状态。 |
状态变换图
1.Activity启动后处于活动状态,此时的Activity位于界面的最上层,是与用户正在进行交互的组件,因此Android系统会努力保证处于活动状态的Activity的资源需求,资源紧张的时候可以终止其他状态的Activity
2.如果用户启动了新的Activity,部分遮挡了当前的Activity,或新的Activity是半透明的,则当前的Activity转换为暂停状态,Andorid系统仅为处于活动状态的Activity释放资源时才终止处于暂停状态的Activity
3.如果用户启动新的Activity 完全遮挡了当前的Activity,则当前的Activity转变为停止状态,停止状态的Activity将优先被终止
4.活动状态的Activity被用户关闭后,以及暂停状态或者停止状态的Activity被系统终止后,Activity便进入了非活动的状态
5.注意: 一般来说,Andorid系统会优先终止处于停止状态,且位置靠近栈底的Activity,因为这些Activity被用户再次调用的机会最小,且在界面上用户是看不到的
事件回调事件
Activity生命周期的事件回调函数
函数 | 说明 |
---|---|
onCreate() | Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或者回复信息等。(不能终止) |
onStart() | 当Activity显示在屏幕上,该函数被调用。一般用来初始化与更新界面相关的资源。(不能终止) |
onRestart() | 当Activity从停止状态进入活动状态前,调用该函数。(不能终止) |
onResume() | 当Activity可以接收用户输入(获得焦点)的时候,该函数被调用。此时的Activity位于Activity栈的栈顶。(不能终止) |
onPause() | 当Activity进入暂停状态的时候,该函数被调用。主要用来保存持久数据,关闭动画、释放CPU资源等。该函数中的代码必须简短,因为另一个Activity必须等待该函数执行完毕之后才能显示在界面上。(不能终止) |
onStop() | 当Activity不对用户可见后,该函数被调用,Activity进入停止状态。一般用来暂停或停止与更新界面相关的操作。(能终止) |
onDestory() | 在Activity被终止前,即进入非活动状态前,该函数被调用。 |
有两种情况该函数会被调用:1. 程序主动调用finish()函数;2.程序被Android系统终结。(能终止) |
注意:
1.onPause()方法控制Activity是否具有交互的功能。
2.onStop()方法控制Activity是否具有可视化的功能。