_基本控件与布局管理器_第1页
_基本控件与布局管理器_第2页
_基本控件与布局管理器_第3页
_基本控件与布局管理器_第4页
_基本控件与布局管理器_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、布局管理器与ActivityActivityAndroid应用开发教程AndroidAndroid基础回顾回顾View类类1常见布局常见布局2简单的简单的UI设计案例设计案例3Activity简介简介4Android应用开发教程Android应用开发教程vAndroid的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。Android应用开发教程v包结构 Android应用的绝大部分UI组件都放在android.widget包及其之包、android.view包及其之包中

2、Android应用开发教程View和viewGroup派生子类v一般来说,开发Android应用程序的UI界面都不会直接实用View和ViewGroup,而是使用这两大基类的派生类。vView派生出的直接子类有: AnalogClock,ImageViewImageView,KeyboardView, ProgressBar,SurfaceView,TextViewTextView,ViewGroup,ViewStubvView派生出的间接子类有: AbsListView,AbsSeekBar, AbsSpinner, AbsoluteLayoutAbsoluteLayout, AdaptAd

3、apterViewTerView,AdapterViewAnimator, AdapterViewFlipper, AppWidgetHostView, AutoCompleteTextView,Button,CalendarView, CheckBoxCheckBox, CheckedTextView, Chronometer, CompoundButtonAndroid应用开发教程vViewGroup派生出的直接子类有:AbsoluteLayoutAbsoluteLayout,AdapterView,FragmentBreadCrumbs,FrameLayout,LinearFrameLa

4、yout,LinearLayoutLayout,RelativeLayoutRelativeLayout,SlidingDrawervViewGroup派生出的间接子类有:AbsListView,AbsSpinner, AdapterViewAnimator, AdapterViewFlipper, AppWidgetHostView, CalendarView, DatePicker, DialerFilter, ExpandableListView, Gallery, GestureOverlayView,GridView,HorizontalScrollView, ImageSwitch

5、er,ListView,TableLayoutTableLayoutAndroid应用开发教程v 控件是Android用户界面中的组成元素。v 控件的父类是View。v View(视图)l 每个View的子类对象都是android.view.View类的一个实例。 l View对象是一个数据体,它的属性存储了用于屏幕上一块矩形区域的布局参数及内容。l View是所有可视化窗体控件的基类。widget包与控件Android应用开发教程v 关于View类的属性l View类常用的属性l 所有可视控件都继承View类属性。属性含义android:background设置背景android:click

6、able设置View是否响应单击事件android:visible控制View的可 见性android:focusable控件View是否可以获取焦点android:id为View设置标识符,可通过findViewById方法获取widget包与控件Android应用开发教程widgetwidget包与控件v Widgetl Widget是为构建用户交互界面提供服务的视图对象。l Widget类是View类的子类。l Android的可视控件都在android.widget包内。l Widget常用的控件包括:u文本控件如:TextView、EditTextu按钮控件如:Button、Imag

7、eButtonu选择控件如: Checkbox、RadioButtonu图片显示控件如:ImageViewu时钟控件:AnalogClock、DigitalClocku日期与时间选择控件:DatePicker、TimePickeruAndroid应用开发教程widgetwidget包与控件v控件的分类Android应用开发教程 widget widget包与控件v控件的属性属性名属性名简介简介取值信息取值信息android:id控件的控件的ID,具有唯一性,具有唯一性自定义自定义android:layout_width控件宽度控件宽度系统值:系统值:fill_parent填充(充满)父容器,填

8、充(充满)父容器,match_parent匹配父容器匹配父容器wrap_content包围内容包围内容自定义值:自定义值:直接指定控件尺寸直接指定控件尺寸android:layout_height控件高度控件高度android:text显示的文本信息显示的文本信息引用引用value中字符串,或直接指定字符串值中字符串,或直接指定字符串值android:background设定背景图片或颜色设定背景图片或颜色引用引用drawable中的图片,或直接给出中的图片,或直接给出RGB颜色颜色android:textColor文字颜色文字颜色android:textSize文字大小文字大小android

9、:textStyle文字风格文字风格normal、bold、italicandroid:maxLines最大行数最大行数android:gravity文字的对齐方式文字的对齐方式top、bottom、left、right等等android:password文本输入框是否是密码文本输入框是否是密码true、falseandroid:selectAllOnFocus文本输入框在获得焦点时全选文字文本输入框在获得焦点时全选文字true、falseandroid:inputType文本输入框的输入内容文本输入框的输入内容number、date、time等等android:textAppearance文

10、字的显示大小文字的显示大小?android:attr/textAppearanceLarge等系统值等系统值android:padding内容距控件边缘的填充间距内容距控件边缘的填充间距android:onClick控件单击是执行的方法控件单击是执行的方法方法名方法名android:layout_gravity控件在父容器中的对齐方式控件在父容器中的对齐方式top、bottom、left、right等等android:layout_margin距离其他控件的边缘距离其他控件的边缘Android应用开发教程布局管理器vAndroid布局管理器都继承自ViewGroup类,用于存放其他控件或嵌套其

11、他布局。v常用的布局管理器有5个,分别是 FrameLayout(帧布局) LinearLayout(线性布局) RelativeLayout(相对布局) TableLayout(表格布局) AbsoluteLayout(绝对布局)。 新增GridLayoutAndroid应用开发教程FrameLayout(帧布局)l 是最简单的布局方式。l 从屏幕的左上角开始显示子对象。l 后添加的对象覆盖前一个对象。Android应用开发教程思考这种效果如何实现?Android应用开发教程思考这种效果如何实现?Android应用开发教程l 是最常用的布局方式。l 以水平或垂直的方式排列子对象。l 一个方向

12、只能有一个对象。l 可以嵌套:一个线性布局内还可以定义线性布局。v LinearLayout 常用属性(布局参数):l andriod:orientation:设置排列方向l android:layout_width:设置宽l android:layout_height:设置高l android:layout_weight:设置控件的重要程度。所有控件都有一个weight值,默认为零,意思是需要显示多大的控件视图就占据多大的屏幕空间。l andriod:gravity:设置内部元素的对齐方式等。LinearLayout(线性布局) 垂直排列垂直排列填充整个屏幕宽度填充整个屏幕宽度按控件大小填充

13、按控件大小填充Android应用开发教程使用注意事项:v线性布局不会换行,当组件一个挨一个排列到头后,剩下的组件将不会显示vAndroid:gravity 组件的对齐方式vAndroid:orientation组件的排列方式horizontalverticalAndroid应用开发教程实例 :实现如图所示的布局文件设计Android应用开发教程TableLayout(表格布局)l 以多行多列的方式显示子对象。l 继承LinearLayoutl 每一行为一个TableRow 。l 每一行可以拥有0个或多个的单元格(cell)。l 每个单元格内是一个View对象。l TableLayout 容器不

14、会显示行 、列 或单元格的边框线。l 列的属性uShrinkable:设置列的宽度是否可收缩,收缩指表格能够适应其父容器的大小。uStretchable:设置列的宽度是否可拉伸,拉伸指可填满表格中空余的空间。uCollapsed:设置列是否被隐藏。Android应用开发教程Android应用开发教程RelativeLayout(相对布局)l 是设计UI的有力工具,通常用于比较复杂的布局。l 相对于其他对象的位置显示子对象,常用于表单中。l 如果需要使用多个嵌套的LinearLayout布局时,可以考虑使用RelativeLayout布局。Android应用开发教程实例:实现如图所示的布局文件设

15、计 l 项目名:Activity_RelativeLayoutl 控件:1个TextView,1个EditText,2个按钮。l 布局文件main.xml如下: Android应用开发教程实例:实现如图所示的布局文件设计/续前 Android应用开发教程RelativeLayout 常用属性l 值为Ture或false的属性ulayout_centerHorizontal:位于父对象的横向中央。ulayout_centerInParent:位于父对象的中央。ulayout_alignParentLeft:与父对象的左侧对齐。l 取其他对象id的属性ulayout_toRightOf:位于给出i

16、d对象的右侧。ulayout_alignTop:与给出id对象的上边界对齐。l 取值为像素的属性ulayout_marginBottom:当前对象的下方的留出的空白。l 注意:要避免循环依赖。u例如已设置父对象的排列为wrap_content,子对象就不能设置为layout_alignParentBottom.Android应用开发教程Android应用开发教程 widget widget包与控件XML文件设计 在XML文件中声明Android应用程序界面布局和组件。l优点: 短小易维护。 符合MVC原则:UI与程序逻辑相分离。代码设计 Android应用程序的界面全部由 java 代码定义。

17、l优点: 方便快捷。l缺点: 不便维护。Android 应用应用界面设计界面设计v UI的编辑方式Android应用开发教程实例:完全用编程方式开发UIUI界面v试图开发一个完全用代码控制UI界面的Adroid应用,由于该应用完全采用代码来控制UI界面,因此可以完全抛弃XML布局文件。Android应用开发教程AndroidAndroid组件v组件是可以调用的基本功能模块,Android应用程序就是由组件组成的vAndroid系统有四个重要的组件,分别是Activity、Service、BroadcaseReceiver和ContentProviderAndroid应用开发教程Activity

18、Activity的作用与功能qActivityq Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件q Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动q 在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框q举例来说:一个email程序,就可能 包含三个activityq 邮件列表的activityq 显示邮件内容的activityq 写新邮件或回复邮件的activityAndroid应用开发教程ActivityActivity生命周期v组件生命周期 所有And

19、roid组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程 在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化Android应用开发教程ActivityActivity生命周期事件函数vActivity生命周期的事件回调函数函数函数是否是否可终止可终止说明说明onCreate()否Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。onStart()否当Activity显示在屏幕上时,该函数被调用。onRestart()否当Activity从停止状态进入活动状态前,调用该函数。onResume()否当Act

20、ivity能够与用户交互,接受用户输入时,该函数被调用。此时的Activity位于Activity栈的栈顶。onPause()是当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。onStop()是当Activity进入停止状态时,该函数被调用。onDestroy()是在Activity被终止前,即进入非活动状态前,该函数被调用。Android应用开发教程ActivityActivity生命周期事件函数vActivity状态保存/恢复的事件回调函数函数函数是否是否可终止可终止说明说明onSaveInstanceState()否Android系统因资源不足终止

21、Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。onRestoreInstanceState()否恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume ()之间被调用。Android应用开发教程ActivityActivity生命周期分类v全生命周期 全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy() 使用者通常在onCreate()中初始化Activity所能使用的全局资源和

22、状态,并在onDestroy()中释放这些资源 在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程Android应用开发教程ActivityActivity生命周期实例v全生命周期 启动和关闭ActivityLifeCycle 的LogCat输出 启动ActivityLifeCycle 按下模拟器的“返回键” 关闭ActivityLifeCycle LogCat输出结果Android应用开发教程ActivityActivity生命周期分类v可视生命周期 可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop

23、()Android应用开发教程ActivityActivity生命周期分类v可视生命周期 onStart()一般用来初始化或启动与更新界面相关的资源 onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务 onRestart()函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程 onStart()和onStop()会被多次调用 onStart()和onStop()也经常被用来注册和注销BroadcastReceiverAndroid应用开发教程ActivityActivity生命周期实例v可视生命周期 状态转换 启动Ac

24、tivityLifeCycle 按“呼出/接听键”启动内置的拨号程序 再通过“返回键”退出拨号程序 ActivityLifeCycle重新显示在屏幕中 可视生命周期的LogCat输出结果Android应用开发教程ActivityActivity生命周期分类v活动生命周期 活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause() 在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码Android应用开发教程ActivityActivity生命周期分类v活动

25、生命周期 onPause()是第一个被标识为“可终止”的函数 在onPause()返回后,onStop()和onDestroy()随时能被Android系统终止 onPause()常用来保存持久数据,如界面上的用户的输入信息等Android应用开发教程ActivityActivity生命周期分类vonPause()和onSaveInstanceState()的区别 这两个函数都可以用来保存界面的用户输入数据,他们的区别在于 onPause()一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的 onSaveInstanceState()主要用来保存动态的状态信息,信息一般保存在Bundle中 Bundl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论