第3讲Android用户界面(一)
- 格式:ppt
- 大小:670.50 KB
- 文档页数:32
声明Android程序的界面布局有两种方法:1、使用XML文件描述界面布局(推荐使用)2、在程序运行时动态添加或修改界面布局;既可以独立使用任何一种声明界面布局的方式,也可以同时使用两种方式。
54、使用XML文件声明界面布局的优势:将程序的表现层和控制层分离,修改用户界面时,无需更改程序的源代码;可通过Eclipse的“可视化编辑器”直接查看用户界面,有利于加快界面设计的过程55、常用的6种界面布局:线性布局、表格布局、网格布局、框架布局、相对布局、绝对布局(3)网格布局(GridLayout):Android SDK 4.0新支持的布局方式;将用户界面划分为网格,界面元素可随意摆放在网格中。
;网格布局比表格布局(TableLayout)在界面设计上更加灵活,在网格布局中界面元素可以占用多个网格的,而在表格布局却无法实现,只能将界面元素指定在一个表格行(TableRow)中,不能跨越多个表格行。
●网格布局的布局属性参数⏹columnCount表示纵向列数,从第0列开始。
⏹rowCount表示恒向行数,从第0行开始。
⏹layout_columnSpan属性表示T控件所占据的列的数量。
⏹layout_gravity = center_horizontal表示文字内容在所占据的块中居中显示。
●注意:网格布局中第1个元素默认在第0行第0列。
1、用户界面(User Interface,UI)是系统和用户之间进行信息交换的媒介,实现信息的内部形式与人类可以接受形式之间的转换2、Android用户界面框架:(1)Android用户界面框架采用MVC(Model-View-Controller)模型。
控制器(Controller)处理用户输入,视图(View)显示用户界面和图像,模型(Model)保存数据和代码(2)Android用户界面框架采用视图树(View Tree)模型,由View和ViewGroup构成3常见的系统控件:TextView,EditText,Button,ImageButton,Checkbox,RadioButton,Spinner,ListView,TabHost4、在MVC模型中,控制器根据界面事件(UI Event)类型不同,将事件传递给界面控件不同的事件处理函数。
-Android UI系统--View其子类被称为Widget--ViewGroup其子类被称为Layout--组合设计模式[Composite]View ViewGroup 层次关系-ViewGroup--ViewGroup---View---View---View--View-Android UI--Menu[菜单]---Option menu 选项菜单---Context menu上下文菜单用户长时间按住不放时弹出的菜单---Sub menu子菜单--Dialog[对话框]--AlertDialog[警告对话框]静态内部类Builder对象[标题、标题、按钮将要响应的事件] create()、show()方法--ProgressDialog[进度对话框]--DatePickerDialog[日期选择对话框]--TimePickerDialog[时间选择对话框]--Toast[提示信息] 显示提示信息自动消失--静态方法 makeText() 添加显示文本和时长--show()显示-Android事件处理[引用Java事件处理机制]--事件鼠标、键盘、触摸、鼠标移动--事件源产生时间的组件--事件监听器组件产生事件时响应的接口---单击事件 View.OnClickListener---焦点事件 View.OnFocusChangeListener---按键事件 View.OnKeyListener---触碰事件 View.OnTeachListener---创建上下文事件 View.OnCreateContextMenuListener-Java事件处理机制--事件角色---event object事件作为参数一般存在于Listener()方法中---event source具体接受事件的实体---event listener 事件监听器-Android布局管理组件在Activity中的呈现方式[组件大小间距对齐方式]--创建方式---xml配置文件中声明---“硬代码”直接实例化布局及其组件--布局方式---线性布局(LinearLayout)垂直水平方向布局----android:orientation [vertical horizon]----android:gravity [top bottom left right]---帧布局(FrameLayout)屏幕的左上角坐标(0,0)布局---表格布局(TableLayout)行列方式布局----TableRow对象---相对布局(RelativeLayout)相对其他组件的布局方式----android:layout_below----android:layout_toLeftOf---绝对布局(AbsoluteLayout)绝对定位布局方式----FrameLayout/RelativeLayout----android:layout_x----android:layout_y-Android组件--常用组件---TextView文本框---EditText编辑框密码文本框---RadioButton单选按钮---CheckBox复选按钮---ToggleButton开关按钮---Spinner下拉列表---AutoCompleteTextView 自动完成文本框设置想要显示资源的适配器[Adapter]---Tab选项卡 FrameLayout-->Activity-->TabActivity-->getTabHost()---ProgressBar进度条----对话框进度条 onCreateDialog() showDialog()----标题栏进度条requestWindowFeature() setProgressBarIndeterminateVisibility()----水平进度条 ProgressBar incrementProgressBy()---日期、时间选择对话框 onCreateDialog() showDialog()----DatePickerDialog日期 onDateSetListener onDateSet()----TimePickerDialog 时间 onTimeSetListener onTimeSet()---ListView列表视图[Adapter] 数组ArrayAdapter/ 游标SimpleCursorAdapter----ListView组件----继承ListActivity---GridView网格视图 BaseAdapter类 getView()---Galley画廊视图 ImageSwitcher组件---MapView地图视图 Google APIs[map.jar]---WebView网络视图 WebView loadUrl() setWebViewClient() onKeyDown()--------------------- 赠予---------------------【名师心得】1. 因材施教,注重创新所讲授的每门课程应结合不同专业、不同知识背景的学生来调整讲授的内容和方法。
那个章节描述怎么实现一个大体的界面。
它涉及构建屏幕大体元素,怎么在xml(概念文件)内概念屏幕、用你的代码生成、在不同任务你需要操作你的用户接口。
Android生成屏幕有三种方式:xml配置生成;通过你自己用户界面接口生成;直接用代码生成。
依照MVC原那么,UI应该与程序逻辑相分离,因此,在XML中概念UI结构是高度推荐的。
另外,一个程序从一个屏幕方案调整到另一个也容易患多。
在XML中概念UI跟创建一个一般的HTML文档超级相似,例如,你有如下的一个文件:<html><head><title>Page Title</title></head><body>The content of the body element.</body></html>就如Android的XML布局一样,所有的元素都是结构化的,能够通过树形结构来表示:<?xml version="" encoding="utf-8"?><LinearLayoutxmlns:android= android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World"/></LinearLayout>屏幕元素的层次Android应用程序的基础功能单元确实是类中的一个对象。