Android之界面布局
用户界面基础
用户界面(User Interface,UI)是系统和用户之间 进行信息交换的媒介,实现信息的内部形式与人类 可以接受形式之间的转换
在计算机出现早期,批处理界面(1946-1968)和命令行 界面(1969-1983)得到广泛的使用 目前,流行图像用户界面(Graphical User Interface, GUI),采用图形方式与用户进行交互的界面 未来的用户界面将更多的运用虚拟现实技术,使用户能 够摆脱键盘与鼠标的交互方式,而通过动作、语言,甚 至是脑电波来控制计算机
// 定义布局管理器的指定宽和高 youtParams params = new youtParams( youtParams.FILL_PARENT, youtParams.FILL_PARENT); layout.setOrientation(LinearLayout.VERTICAL);
<Button android:id="@+id/btn1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="gravity测试" android:gravity="right" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="layout_gravity测试" android:layout_gravity="right" />
线性布局LinearLayout
线性布局(LinearLayout)
动态创建布局
在将每一个View加入到这个Layout里边的时候,我们会传传 递一组值,这组值封装在LayoutParams这个类当中。在显示 这个View的时候,它的容器会根据传进来的LayoutParams进 行计算,来确认这个View显示的大小和位置 layout_width - 宽 layout_height - 高
练习——线形嵌套登录页面
需求说明:
使用线形布局按照如图 要求完成效果
完成时间:20分钟
共性问题集中讲解
共性问题集中讲解
常见调试问题及解决办法 代码规范问题
表格布局TableLayout
xmlns:android=/apk/res/a ndroid
这样使得Android中各种标准属性能在文件中使用
线性布局LinearLayout
线性布局(LinearLayout)是一种重要的界面布局 中,也是经常使用到的一种界面布局
在线性布局中,所有的子元素都按照垂直或水平的顺 序在界面上排列,不会换行
<Button android:id="@+id/btn1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="测试按钮1" android:layout_weight="3"/> <Button android:id="@+id/btn2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="测试按钮2" android:layout_weight="2"/> <Button android:id="@+id/btn3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="测试按钮3" />
<LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="bottom|center_horizontal"> </LinearLayout>
使用XML文件描述界面布局 在程序运行时动态添加或修改界面布局
用户既可以独立使用任何一种声明界面布局的方式,也可以 同时使用两种方式
用户界面基础
使用XML文件声明界面布局的特点
将程序的表现层和控制层分离 在后期修改用户界面时,无需更改程序的源代码 用户还能够通过可视化工具直接看到所设计的用户界 面,有利于加快界面设计的过程,并且为界面设计与 开发带来极大的便利性
用户界面基础
Android用户界面框架
Android UI Framework采用视图树View Tree模型
Android用户界面框架中的界面元素以一种树型结构组织在 一起,称为视图树 Android系统会依据视图树的结构从上至下绘制每一个界面 元素。每个元素负责对自身的绘制,如果元素包含子元素, 该元素会通知其下所有子元素进行绘制
用户界面基础
Activity代表的是显示给用户的窗口或屏幕
Android中定义Activity定义使用一个view 和viewgroup 的树状节点 它要显示一个用户界面就需要给一个Activity分配一个 View或者布局
setContentView()方法
界面布局
界面布局Layout是用户界面结构的描述,定义了界面中 所有的元素、结构和相互关系 声明Android程序的界面布局有两种方法
如果垂直排列,则每行仅包含一个界面元素 如果水平排列,则每列仅包含一个界面元素 属性android:orientation
Horizontal vertical
线性布局LinearLayout
线性布局(LinearLayout)
在线性布局中,有个非常重要的属性gravity,这个属 性用来指定组件内容的对齐方式
用户界面基础
设计手机用户界面应解决的问题
需要界面设计与程序逻辑完全分离,这样不仅有利于他 们的并行开发,而且在后期修改界面时,也不用再次修 改程序的逻辑代码 根据不同型号手机的屏幕解析度、尺寸和纵横比各不相 同,自动调整界面上部分控件的位置和尺寸,避免因为 屏幕信息的变化而出现显示错误 能够合理利用较小的屏幕显示空间,构造出符合人机交 互规律的用户界面,避免出现凌乱、拥挤的用户界面 Android已经解决了前两个问题,使用XML文件描述用户 界面;资源资源文件独立保存在资源文件夹中;对界用 户面描述非常灵活,允许不明确定义界面元素的位置和 尺寸,仅声明界面元素的相对位置和粗略尺寸
线性布局LinearLayout
线性布局(LinearLayout)
在线性布局中,LinearLayout还支持为其包含的 widget或者是container指定填充权值layout_weight
默认的 weight 值为0 ,表示按照widgets或者是containers实 际大小来显示,若高于0的值,则将 Container剩余可用空间 分割,分割大小具体取决于每一个widget或者是 container的 layout_weight及该权值在所有widgets或者是containers中的 比例
线性布局LinearLayout
线性布局(LinearLayout)
在线性布局中,LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity
android:gravity:是对view控件本身来说的,是用来设置view 本身的内容应该显示在view的什么位置,默认值是左侧 。 android:layout_gravity:是相对于包含该元素的父元素来说 的,设置该元素在父元素的什么位置
可视化编辑器
双击建立的/res/layout下的布局文件,如:main.xml, Eclipse将打开界面布局的可视化编辑器
资源配置清单
布局和控件
可视化界面
能够在可视化编辑器和XML文 件编辑器之间切换
布局组件Layout
布局组件Layout
ViewGroup是一个抽象类,也是其他容器类的基类。下
就像它的名字显示的意义一样,Viewgroup的作用就是 View的容器,它负责对添加进Viewgroup的这些View进 行布局 当然一个Viewgroup也可以加入到另一个Viewgroup里 边。因为Viewgroup也是继承于View.Viewgroup类,在 每个Viewgroups类中都会有一个嵌套类,这个嵌套类的 属性中定义了子view的位置和大小
基础篇 Android UI之界? TextView,EditView有哪些特色应用? Toast如何使用 ? Android中的调试手段有哪些?
本章任务
使用几种不同的布局完成登录页面
本章目标
熟练掌握Android的常用布局 熟练掌握Android的嵌套布局 熟练掌握构建复杂页面
gravity的中文意思就是”重心“,就是表示view横向和纵向 的停靠位置 ,支持top、bottom、left、right、center_vertical、 fill_vertical、center_horizontal、fill_horizontal、center、fill、 clip_vertical、clip_horizontal几个属性值。 可以同时指定多种对齐方式,如left|center_vertical表示出 现 在屏幕左边,并且垂直居中