项目3智能计算器 【教学导航】 学习目标 (1) 理解Android的UI的含义。 (2) 掌握Android的几种常见布局。 (3) 熟悉Android系统中的样式和主题。 (4) 培养简单案例的设计开发能力。 教学方法 任务驱动法、理论实践一体化、探究学习法、分组讨论法 课时建议 6 课时 3.1Android UI常用布局 一个丰富的界面总是要由很多控件组成的,如何才能让各个控件都有条不紊地摆放在界面上呢?这就需要借助布局来实现了。布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面。当然,布局的内部除了放置控件外,也可以放置布局,通过多层布局的嵌套,就能够完成一些比较复杂的界面。本节详细讲解Android中最基本的3种布局: LinearLayout(线性布局)、RelativeLayout(相对布局)和FrameLayout(帧布局)。 微课视频 3.1.1UI简介 UI即User Interface(用户界面)的简称,是人和设备之间交互的工具,小到手机端的应用,大到计算机上的桌面程序,用户所触摸到的屏幕就是用户界面。 1. UI界面 用户界面并不是一个新鲜的概念,早在中国古代使用的算盘,它是由珠子组成的最早的人机交互界面。后来,MS DOS操作系统走进了大众视野,但它呈现出来的是黑色屏幕和白色代码的命令窗口,界面既不美观也不友好。后来图形化用户界面兴起,这种界面上有很多图标,计算机端用鼠标就可以进行简单的操作,手机端应用手指触摸便可响应。 UI设计就是设计界面美观、舒适的人机交互界面,让软件开发变得有品位、有个性,让用户操作变得简单、舒适。 2. UI设计相关的几个概念 在Android中,进行界面设计时,经常会用到View、ViewGroup、Padding、Margins等概念,对于初学Android的人来说,一般不好理解。下面对这几个概念进行详细的介绍。 1) View View在Android中可以理解为视图,它占据屏幕上的一块矩形区域,负责提供组件绘制和事件处理的方法,如图3.1所示。View相当于窗户上的玻璃,设计窗户时,可以设计自己所需要的玻璃数,可以是4块玻璃,也可以是6块玻璃。也就是说,在手机屏幕中可以有很多个View,在Android手机中,使用View是通过View类来实现的,View类就是所有控件的基类,某一个控件如TextView是View的子类。 图3.1UI界面上的View 2) ViewGroup ViewGroup在Android中可以理解为容器。ViewGroup类继承自View类,它是View类的扩展,是用来容纳其他组件的容器,但是由于ViewGroup是一个抽象类,所以在实际应用中通常总是使用ViewGroup的子类来作为容器的,如图3.2所示。 图3.2UI界面上的ViewGroup 3) Padding和Margins Padding表示在控件的顶部、底部、左侧和右侧的填充像素,也称为内边距。它设置的是控件内容到控件边缘的距离。Padding将占据控件的宽度和高度。设置指定的内边距后,内容将偏离控件边缘指定的距离。 Margins表示控件的顶部、底部、左侧和右侧的空白区域,称为外边距。它设置的是控件与其父容器的距离。Margins不占据控件的宽度和高度。为控件设置外边距后,该控件将远离父容器指定的距离,如果还有相邻组件,那么也将远离其相邻组件指定距离。 内边距和外边距示意图如图3.3所示。 图3.3内边距和外边距 4) dp和sp dp是宽度、高度的单位。例如: 按钮的宽度为100dp,按钮的高度为60dp。 sp是文字大小的单位,例如: 文字大小为32sp等。 3.1.2LinearLayout布局 LinearLayout又称作线性布局,是一种最常用的布局,正如它的名字一样,这个布局会将它所包含的控件在线性方向上依次排列。 1. LinearLayout常用属性 LinearLayout属性较多,下面列举一些常用属性,如表3.1所示。 表3.1LinearLayout常用属性 属性功能描述实例 android:orientation指定控件排列方向 android:orientation="vertical"内部控件在垂直方向上排列 android:orientation="horizontal"内部控件在水平方向上排列 android:layout_gravity指定控件在布局中的对齐方式 android:layout_gravity="top" 顶端对齐(方向: 水平) android:layout_gravity="center_vertical" 垂直居中 android:layout_gravity="bottom" 底端对齐 android:layout_gravity="left" 左对齐(方向: 垂直) android:layout_gravity="center_horizontal" 水平居中 android:layout_gravity="right "右对齐 android:layout_weight允许控件使用比例方式指定控件的大小 android:layout_weight="1" 1) orientation属性 orientation属性可以用来控制线性布局中控件的排列方向。新建一个工程LinearLayoutTest,打开activity_main.xml布局界面,输入代码如下。