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

下载本文档

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

文档简介

布局管理器与ActivityAndroid应用的界面编程Android基础回顾View类1常见布局2简单的UI设计案例3Activity简介4Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。包结构Android应用的绝大部分UI组件都放在android.widget包及其之包、android.view包及其之包中View和viewGroup派生子类一般来说,开发Android应用程序的UI界面都不会直接实用View和ViewGroup,而是使用这两大基类的派生类。View派生出的直接子类有:AnalogClock,ImageView,KeyboardView,

ProgressBar,SurfaceView,TextView,ViewGroup,ViewStubView派生出的间接子类有:AbsListView,AbsSeekBar,

AbsSpinner,

AbsoluteLayout,

AdapterView<T

extends

Adapter>,AdapterViewAnimator,

AdapterViewFlipper,

AppWidgetHostView,

AutoCompleteTextView,Button,CalendarView,

CheckBox,

CheckedTextView,

Chronometer,

CompoundButtonViewGroup派生出的直接子类有:AbsoluteLayout,AdapterView<T

extends

Adapter>,FragmentBreadCrumbs,FrameLayout,LinearLayout,RelativeLayout,SlidingDrawerViewGroup派生出的间接子类有:AbsListView,AbsSpinner,

AdapterViewAnimator,

AdapterViewFlipper,

AppWidgetHostView,

CalendarView,

DatePicker,

DialerFilter,

ExpandableListView,

Gallery,

GestureOverlayView,GridView,HorizontalScrollView,

ImageSwitcher,ListView,TableLayout控件是Android用户界面中的组成元素。控件的父类是View。View(视图)每个View的子类对象都是android.view.View类的一个实例。

View对象是一个数据体,它的属性存储了用于屏幕上一块矩形区域的布局参数及内容。View是所有可视化窗体控件的基类。widget包与控件关于View类的属性View类常用的属性所有可视控件都继承View类属性。属性含义android:background设置背景android:clickable设置View是否响应单击事件android:visible控制View的可见性android:focusable控件View是否可以获取焦点android:id为View设置标识符,可通过findViewById方法获取widget包与控件widget包与控件WidgetWidget是为构建用户交互界面提供服务的视图对象。Widget类是View类的子类。Android的可视控件都在android.widget包内。Widget常用的控件包括:文本控件如:TextView、EditText按钮控件如:Button、ImageButton选择控件如:Checkbox、RadioButton图片显示控件如:ImageView时钟控件:AnalogClock、DigitalClock日期与时间选择控件:DatePicker、TimePicker……widget包与控件控件的分类widget包与控件控件的属性属性名简介取值信息android:id控件的ID,具有唯一性自定义android:layout_width控件宽度系统值:fill_parent填充(充满)父容器,match_parent匹配父容器wrap_content包围内容自定义值:直接指定控件尺寸android:layout_height控件高度android:text显示的文本信息引用value中字符串,或直接指定字符串值android:background设定背景图片或颜色引用drawable中的图片,或直接给出RGB颜色android:textColor文字颜色android:textSize文字大小android:textStyle文字风格normal、bold、italicandroid:maxLines最大行数android:gravity文字的对齐方式top、bottom、left、right等android:password文本输入框是否是密码true、falseandroid:selectAllOnFocus文本输入框在获得焦点时全选文字true、falseandroid:inputType文本输入框的输入内容number、date、time等android:textAppearance文字的显示大小?android:attr/textAppearanceLarge等系统值android:padding内容距控件边缘的填充间距android:onClick控件单击是执行的方法方法名android:layout_gravity控件在父容器中的对齐方式top、bottom、left、right等android:layout_margin距离其他控件的边缘布局管理器Android布局管理器都继承自ViewGroup类,用于存放其他控件或嵌套其他布局。常用的布局管理器有5个,分别是FrameLayout(帧布局)LinearLayout(线性布局)RelativeLayout(相对布局)TableLayout(表格布局)AbsoluteLayout(绝对布局)。新增GridLayoutFrameLayout(帧布局)是最简单的布局方式。从屏幕的左上角开始显示子对象。后添加的对象覆盖前一个对象。思考这种效果如何实现?思考这种效果如何实现?是最常用的布局方式。以水平或垂直的方式排列子对象。一个方向只能有一个对象。可以嵌套:一个线性布局内还可以定义线性布局。LinearLayout常用属性(布局参数):andriod:orientation:设置排列方向android:layout_width:设置宽android:layout_height:设置高android:layout_weight:设置控件的重要程度。所有控件都有一个weight值,默认为零,意思是需要显示多大的控件视图就占据多大的屏幕空间。andriod:gravity:设置内部元素的对齐方式等。LinearLayout(线性布局)

垂直排列填充整个屏幕宽度按控件大小填充使用注意事项:线性布局不会换行,当组件一个挨一个排列到头后,剩下的组件将不会显示Android:gravity组件的对齐方式Android:orientation组件的排列方式horizontalvertical实例

:实现如图所示的布局文件设计TableLayout(表格布局)以多行多列的方式显示子对象。继承LinearLayout每一行为一个TableRow。每一行可以拥有0个或多个的单元格(cell)。每个单元格内是一个View对象。TableLayout容器不会显示行、列或单元格的边框线。列的属性Shrinkable:设置列的宽度是否可收缩,收缩指表格能够适应其父容器的大小。Stretchable:设置列的宽度是否可拉伸,拉伸指可填满表格中空余的空间。Collapsed:设置列是否被隐藏。RelativeLayout(相对布局)是设计UI的有力工具,通常用于比较复杂的布局。相对于其他对象的位置显示子对象,常用于表单中。如果需要使用多个嵌套的LinearLayout布局时,可以考虑使用RelativeLayout布局。实例:实现如图所示的布局文件设计

项目名:Activity_RelativeLayout控件:1个TextView,1个EditText,2个按钮。布局文件main.xml如下:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"><TextViewandroid:id="@+id/label"android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="Typehere:"

/>

实例:实现如图所示的布局文件设计//续前

<EditTextandroid:id="@+id/entry"android:layout_width="fill_parent"

android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_below="@id/label"/><Buttonandroid:id="@+id/ok"android:layout_width="wrap_content“

android:layout_height="wrap_content"android:layout_below="@id/entry"

android:layout_alignParentRight="true“

android:layout_marginLeft="10dip"android:text="OK"/><Buttonandroid:layout_width="wrap_content“

android:layout_height="wrap_content"android:layout_toLeftOf="@id/ok"android:layout_alignTop="@id/ok"android:text="Cancel"/></RelativeLayout>RelativeLayout常用属性值为Ture或false的属性layout_centerHorizontal:位于父对象的横向中央。layout_centerInParent:位于父对象的中央。layout_alignParentLeft:与父对象的左侧对齐。取其他对象id的属性layout_toRightOf:位于给出id对象的右侧。layout_alignTop:与给出id对象的上边界对齐。取值为像素的属性layout_marginBottom:当前对象的下方的留出的空白。注意:要避免循环依赖。例如已设置父对象的排列为wrap_content,子对象就不能设置为layout_alignParentBottom.widget包与控件XML文件设计

在XML文件中声明Android应用程序界面布局和组件。优点:短小易维护。符合MVC原则:UI与程序逻辑相分离。代码设计

Android应用程序的界面全部由java代码定义。优点:方便快捷。缺点:不便维护。Android应用

界面设计√UI的编辑方式实例:完全用编程方式开发UI界面试图开发一个完全用代码控制UI界面的Adroid应用,由于该应用完全采用代码来控制UI界面,因此可以完全抛弃XML布局文件。Android组件组件是可以调用的基本功能模块,Android应用程序就是由组件组成的Android系统有四个重要的组件,分别是Activity、Service、BroadcaseReceiver和ContentProviderActivity的作用与功能ActivityActivity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框举例来说:一个email程序,就可能包含三个activity邮件列表的activity显示邮件内容的activity写新邮件或回复邮件的activityActivity生命周期组件生命周期所有Android组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化Activity生命周期事件函数Activity生命周期的事件回调函数函数是否

可终止说明onCreate()否Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。onStart()否当Activity显示在屏幕上时,该函数被调用。onRestart()否当Activity从停止状态进入活动状态前,调用该函数。onResume()否当Activity能够与用户交互,接受用户输入时,该函数被调用。此时的Activity位于Activity栈的栈顶。onPause()是当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。onStop()是当Activity进入停止状态时,该函数被调用。onDestroy()是在Activity被终止前,即进入非活动状态前,该函数被调用。Activity生命周期事件函数Activity状态保存/恢复的事件回调函数函数是否

可终止说明onSaveInstanceState()否Android系统因资源不足终止Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。onRestoreInstanceState()否恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume()之间被调用。Activity生命周期分类全生命周期全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()使用者通常在onCreate()中初始化Activity所能使用的全局资源和状态,并在onDestroy()中释放这些资源在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程Activity生命周期实例全生命周期启动和关闭ActivityLifeCycle的LogCat输出启动ActivityLifeCycle按下模拟器的“返回键”关闭ActivityLifeCycleLogCat输出结果Activity生命周期分类可视生命周期可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()Activity生命周期分类可视生命周期onStart()一般用来初始化或启动与更新界面相关的资源onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务onRestart()函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程onStart()和onStop()会被多次调用onStart()和onStop()也经常被用来注册和注销BroadcastReceiverActivity生命周期实例可视生命周期状态转换启动ActivityLifeCycle按“呼出/接听键”启动内置的拨号程序再通过“返回键”退出拨号程序ActivityLifeCycle重新显示在屏幕中可视生命周期的LogCat输出结果Activity生命周期分类活动生命周期活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码Activity生命周期分类活动生命周期onPause()是第一个被标识为“可终止”的函数在onPause()返回后,onStop()和onDestroy()随时能被Android系统终止onPause()常用来保存持久数据,如界面上的用户的输入信息等Activity生命周期分类onPause()和onSaveInstanceState()的区别这两个函数都可以用来保存界面的用户输入数据,他们的区别在于onPause()一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的onSaveInstanceState()主要用来保存动态的状态信息,信息一般保存在Bundle中Bundle是能够保存多种格式数据的对象在onSaveInstanceState()保存在Bundle中的数据,系统在调用onRestoreInstanceState()和onCreate()时,会同样利用Bundle将数据传递给函数A

温馨提示

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

评论

0/150

提交评论