用户界面设计课件_第1页
用户界面设计课件_第2页
用户界面设计课件_第3页
用户界面设计课件_第4页
用户界面设计课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、第 2 章 用户界面设计012.1 视图组件与容器组件0203042.2 控制 UI 界面2.3 基本 UI 组件2.4 高级 UI 组件052.5 Handler 消息传递机制062.6 项目实战:“移动商城”(一)07082.7 相关阅读:ButterKnife 的使用 2.8 本章小结本章导读本章主要对 Android 前台手机界面布局方法以及常用组件进行阐述。主要知识点有:(1)视图组件和容器组件;(2)控制UI界面的三种方式;本章导读(3)基本 UI 组件(包括 TextView、EditText、Button、ImageView、ProgressBar、ScrollView、Toa

2、st、布局管理器等);(4)高级 UI 组件(包括列表类组件、对话框、菜单、标签栏等);(5)Handler 消息传递机制。第五章 异性交往第一节 金星遇上火星男女有别成年男女心理与行为差异1.女性喜欢逛街购物,男性喜欢打游戏、看球赛2.女性比男性更容易迷路3.女性比男性更喜欢聊天4.女性更易表达情感,男性喜欢隐藏情感5.男性女性对待压力的方式不同6.女性爱唠叨,男性爱沉默 第二节 异性交往与恋爱“喜欢量表”&“爱情量表” 爱情量表1.他(她)情绪低落时,我首要的职责是让他(她)快乐起来。 2.在所有的事情上我都可以信赖他(她)。 3.我觉得不计较他(她)的过失是一件容易的事。4.我几乎愿意为

3、他(她)做任何事。 5.我对他(她)有独占欲。 6.若不能永远跟他(她)在一起,我会觉得非常痛苦。 7.寂寞时我首先想到的就是去找他(她)。 8.他(她)的幸福属于我最关切的事。9.我愿意原谅他(她)的任何过错。 10.我觉得他(她)的幸福安康是我的责任。 11.同他(她)在一起的大部分时光,我就这样看着他(她)。12.我非常享受他(她)对我的信赖。 13.没有他(她)的日子,对我来说很难过。 喜欢量表 1.我们在一起时的心情总是一样的。2.我认为他(她)环境适应能力很强。3.我强烈推荐他(她)做一项责任重大的工作。4.以我看来,他(她)特别成熟。5.我相信他(她)有良好的判断力。 6.即使同

4、他(她)短暂相处,人们大多都会有很好的印象。7.我觉得他(她)跟我很相似。 8.我愿意在班级或群体选举中投他(她)一票。 9.我觉得他(她)是一个能很快博得尊重的人。 10.我觉得他(她)绝顶聪明。11.在我认识的人当中,他(她)是非常可爱的。 12.他(她)是我很想学习的那种人。 13.我觉得他(她)非常容易赢得人们的钦佩。 正确理解爱情内涵爱情的真正意义就在于帮助对方提高,同时也提高自己。车尔尼雪夫斯基爱情可能事恒久的,那是一份坚贞和执着;但也可能是脆弱的,那是当你存有太多幻想,而又不肯忍受现实的缺点的时候。能维持长远的感情,其中定有很多的宽容和谅解。罗兰爱是我们对所爱者的生命与成长的主动

5、关切,没有这种关切就没有爱。弗洛姆爱情三个特点:爱需要彼此的理解、关心、宽容、拥有共同的志趣爱情是催人上进的爱情是需要不断追求和培养的,不是一旦拥有就永远拥有的爱情三原素理论斯腾伯格:爱情关系由三种元素组成,亲情、恋情、承诺浪漫型组合(无承诺)、亲情型组合(喜欢)、虚幻型组合(一见钟情、闪电式结婚)、热恋型组合(只有性爱,一夜情)、伴侣型组合(性爱缺乏)、承诺型组合(包办婚姻)、完满型组合大学生恋爱的特点1、理想化“美貌等于美德”经济上依靠父母,缺乏对现实社会真实、深入的了解;对未来生活的设计过于乐观,对将要面临的困境、挫折没有充分的心理准备。2、纯真且热烈奔放生理发展的旺盛时期,情绪易冲动。

6、热情有余,含蓄不足。感性的成分太多,分手的可能性大大增加。真正的爱情是表现在对所爱的人采取含蓄、谦恭,甚至羞涩的态度,而决不是表现在随意流露热情和过早的亲昵。马克思3、盲目性内部的需求(心理断乳期)和外部浓郁的恋爱氛围(风气),使一些学生觉得恋爱是大学所要追求的另一个目标。4、波动性来得快,散得快。心理的不成熟,价值观人生观的不完善,缺乏主见,盲从等。“进入爱时要慢一点;提出分手时,也要慢一点”毕业分配,现实的考验第三节 恋爱沟通技巧一、恋爱交往中男女心理需要 1.女性需要关心,男性需要信任2.女性需要了解,男性需要接受 3.女性需要尊重,男性需要感激 4.女性需要专注,男性需要赞美 5.女性

7、需要认同,男性需要肯定 6.女性需要安慰,男性需要鼓励 二、男女沟通差异1.男性常说结果,女性常说过程2.女性活在感觉中,男性则是行动派3.女性喜欢暗示,男性需要直接4.女性需要宣泄,男性需要沉默 第四节 爱和性一、恋爱与性行为建立科学的性观念 性不等于爱性本能是人的自然属性,但是人的这种本能要受到道德和法律的制约三、婚前性行为心理及其危害1.婚前性行为会带来剧烈的心理冲突。2.婚前性行为会导致感情变味3.婚前性行为会使婚后生活质量下降4.婚前性行为给女生造成巨大的身心伤害5.婚前性行为也会带来性疾病的传播男生怎样调适自己的性冲动1、破除对“性”的神秘感2、加强意志锻炼3、和女生相处时,应适当

8、减少绵绵的情话和过分亲昵的动作4、适当运用自慰行为。012.1 视图组件与容器组件Android 的 UI 界面都是由 View 和 ViewGroup 及其派生类组合而成的。其中,View 是所有UI组件的基类,而 ViewGroup 是容纳 View 及其派生类的容器,ViewGroup 也是从 View 派生出来的。一般来说,开发 UI 界面都不会直接使用 View 和ViewGroup 自定义控件的时候使用),而是使用其派生类。012.1 视图组件与容器组件Android 中的视图可分为 3 种:布局类(Layout)、视图容器类(View Container)和视图类(例如,Text

9、View 就是一个直接继承 View 类的视图类)。android.view.ViewGroup 是一个容器类,该类也是 View 的子类,所有的布局类和视图容器类都是 ViewGroup 的子类,而视图类直接继承自 View 类。012.1 视图组件与容器组件Android 中的视图组件与容器组件012.1 视图组件与容器组件UI布局的层次结构022.2 控制 UI 界面使用 XML 布局文件控制 UI 界面在 Java 代码中控制 UI 界面使用 XML 布局文件和代码混合控制 UI 界面032.3 基本 UI 组件2.3.1 TextView 和 EditTextTextView 及其子

10、类032.3 基本 UI 组件2.3.2 Button、ImageButton、ImageView、RadioButton 和 CheckBoxpublic class Button extends TextViewpublic class ImageButton extends ImageViewpublic class ImageView extends Viewpublic class RadioButton extends CompoundButtonpublic class RadioGroup extends LinearLayoutpublic class CheckBox ex

11、tends CompoundButton032.3 基本 UI 组件2.3.3 ProgressBar、ScrollView、Toast(消息提示)ProgressBar 是 UI 控件中用于显示某个时刻操作完成的进度控件。该控件应随时间、操作完成度而实时的变化,从而达到提醒用户任务进度的目的。ProgressBar 类声明如下: public class ProgressBar extends View032.3 基本 UI 组件2.3.3 ProgressBar、ScrollView、Toast(消息提示)ScrollView 是为普通控件添加滚动条的控件。该控件每次只能作用于一个普通控件

12、以控制其滚动。ScrollView 类声明如下:public class ScrollView extends FrameLayout032.3 基本 UI 组件2.3.3 ProgressBar、ScrollView、Toast(消息提示)Toast 类声明如下: public class Toast extends ObjectToast可以通过 makeText() 方法创建Toast对象并设置相关属性,并调用 show() 方法显示提示。例如以下: Toast.makeText(MainActivity.this, 提示的内容, Toast.LENGTH_LONG).show();03

13、2.3 基本 UI 组件2.3.4 日期时间类组件1AnalogClock(模拟时钟)AnalogClock 类声明如下: public class AnalogClock extends View032.3 基本 UI 组件2.3.4 日期时间类组件2DatePicker(日期选择器)DatePicker 类声明如下: public class DatePicker extends FrameLayout032.3 基本 UI 组件2.3.4 日期时间类组件3TimePicker(时间选择器)TimePicker 类声明如下: public class TimePicker extends

14、FrameLayout032.3 基本 UI 组件2.3.5 布局管理器Android 布局管理器本身就是一个 UI 控件,所有的布局管理器都是 ViewGroup 的子类。布局管理器可以包含 UI 组件,也可以包含其他布局管理器,因此,可以将其看成是一个 ViewGroup 对象。通过多层布局的嵌套,我们能够完成一些比较复杂的界面实现。032.3 基本 UI 组件2.3.5 布局管理器LayoutParams 表示布局参数,子 View 通过LayoutParams 告诉父容器(ViewGroup)应该如何放置自己。LayoutParams 与 ViewGroup 是息息相关的。Layout

15、Params 携带了子控件针对父控件的信息,告诉父控件如何放置自己。032.3 基本 UI 组件2.3.5 布局管理器LayoutParams 类也只是简单描述了宽高,宽和高都可以设置成三种值:(1)一个确定的值;(2)MATCH_PARENT,即填满(和父容器一样大小);(3)WRAP_CONTENT,即包裹住组件就好。032.3 基本 UI 组件2.3.5 布局管理器1线性布局LinearLayout 类声明如下:public class LinearLayout extends ViewGroup线性布局 LinearLayout 是 Android 系统中最基础的一种布局。采用自上而下

16、或者从左往右的方式一个元素接着一个元素排列,当排列的元素超出屏幕范围,超出的部分将做隐藏处理。03线性布局03032.3 基本 UI 组件2.3.5 布局管理器2相对布局RelativeLayout 类声明如下:public class RelativeLayout extends ViewGroup相对布局 RelativeLayout 是位置相对于兄弟组件或者布局容器来布局的一种布局管理器。03相对布局03相对布局032.3 基本 UI 组件2.3.5 布局管理器3帧布局FrameLayout 类声明如下:public class FrameLayout extends ViewGroup

17、帧布局 FrameLayout 是最简单的布局方式,帧布局向屏幕绘制了一个空白的矩形区域,所有添加到这个布局中的视图都是以层叠的方式显示。第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层。032.3 基本 UI 组件2.3.5 布局管理器4表格布局TableLayout 类声明如下: public class TableLayout extends LinearLayout表格布局 TableLayout ,它继承了 LinearLayout,通过 TableRow 来表示表格中行的概念,一个 TableRow 即表示一行。032.3 基本 UI 组件2.3.5 布局管理器5网格

18、布局GridLayout 类声明如下: public class GridLayout extends ViewGroup网格布局 GridLayout 是 Android 4.0 以后新增的一种布局管理器,该布局将屏幕中某个矩形区域划分成排列整齐的若干个单元格。对于一个网格布局来说,需要明确划分成几行几列。032.3 基本 UI 组件2.3.5 布局管理器6约束布局ConstraintLayout 类声明如下:public class ConstraintLayout extends ViewGroup约束布局 ConstraintLayout 是一个 ViewGroup,可以在 API 9

19、 以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题。042.4 高级 UI 组件2.4.1 列表类组件1AdapterAndroid 里的 Adapter 是 View 视图与 data 数据之间的桥梁,Adapter 提供对数据的访问,也负责为每一项数据产生一个对应的视图。Adapter 接口声明如下:public interface Adapter04Adapter 接口及其实现类的继承关系042.4 高级 UI 组件2.4.1 列表类组件2AdapterViewAdapterView 类声明如下: public abstract class AdapterView

20、 extends ViewGroupAdapterView 的本质是容器,其内容由 Adapter 来提供,通过 setAdapter(Adapter) 的方法来设置。04AdapterView 及其子类的继承关系042.4 高级 UI 组件2.4.1 列表类组件3Spinner(下拉框)Spinner 类声明如下: public class Spinner extends AbsSpinner implements DialogInterface.OnClickListenerSpinner 是一个下拉列表框,需要给它指定对应的数据源。Spinner 数据源的设定支持两种方式:通过指定and

21、roid:entries 属性或者 Adapter 方式设定数据源。042.4 高级 UI 组件2.4.1 列表类组件4ListViewListView 类声明如下: public class ListView extends AbsListViewListView 是手机中使用非常频繁的一类控件,它以垂直的方式显示列表项,显示信息更加清晰明了。042.4 高级 UI 组件2.4.1 列表类组件5RecyclerView从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的、更加强大和灵活的新控件 RecylerView,可以用来代替传统的 ListView。RecylerView

22、 起到增强型列表的作用。042.4 高级 UI 组件2.4.1 列表类组件欲使用 RecylerView 控件,需要在 build.gradle 文件的 dependencies 闭包(节点)中加入以下代码,以导入 recylerView 库。 dependencies implementation androidx.recyclerview:recyclerview:1.0.0 /implementation com.android.support:recyclerview-v7:28.0.0 04导入 recylerView 库04运行RecyclerViewDemo042.4 高级 UI

23、 组件2.4.2 对话框1DialogDialog 就是在屏幕上弹出一个让用户做出选择或者输入额外信息的对话框,一个对话框并不会占满整个屏幕,通常用于模态事件(modal events),需要用户做出一个决定后才会继续执行。042.4 高级 UI 组件2.4.2 对话框2AlertDialogAlertDialog 是一款功能强大的对话框控件,可以显示标题、图标、内容和按钮(至多3个)。042.4 高级 UI 组件2.4.2 对话框AlertDialog布局042.4 高级 UI 组件2.4.2 对话框AlertDialog 对话框界面布局如上图所示。 区域 1(标题区 + 图标区):定义弹出

24、框的头部信息,包括标题和一个图标。 区域 2(内容区):AlertDialog 对话框的 Content(内容)部分,在这里可以设置一些提示信息,或者是定义一组选择框,或者是自己定制的布局等。 区域 3(按钮区):定义Action Buttons(操作按钮)。042.4 高级 UI 组件2.4.2 对话框创建 AlertDialog.Builder 对象,该对象是 AlertDialog 的创建器。调用 AlertDialog.Builder 的方法为对话框设置图标、标题、内容等。调用 AlertDialog.Builder 的 create() 方法创建 AlertDialog 对话框。调用

25、 AlertDialog 的 show() 方法显示对话框。使用 AlertDialog 创建对话框的主要步骤042.4 高级 UI 组件2.4.3 菜单Android 中的菜单(Menu)主要有如下几种:OptionMenu(选项菜单)ContextMenu(上下文菜单)SubMenu(子菜单)PopupMenu(弹出菜单)042.4 高级 UI 组件2.4.3 菜单在选项菜单中,应当包括与当前 Activity 上下文相关的操作和其他选项,如“搜索”、 “设置”等。选项菜单在屏幕上的显示位置取决于您开发的应用所适用的 Android 版本。选项菜单042.4 高级 UI 组件2.4.3 菜

26、单 在Android 2.3.x 或者更低版本,因为该阶段大部分机型都是带有 Menu 键的,此阶段通过点击 Menu 键弹出菜单。在 Android 3.0 或者更高的版本,则是通过 3.0 引入的 ActionBar 中的 setting 菜单。 而在5.0 以上的版本,则是在 ToolBar 中的,点击手机屏幕右上角 (垂直方向三个点)弹出一个溢出式的菜单样式。选项菜单042.4 高级 UI 组件2.4.3 菜单使用 OptionMenu(选项菜单)需要重写(Override)以下两个方法:public boolean onCreateOptionsMenu(Menu menu):调用

27、OptionMenu,在这里完成菜单初始化。public boolean onOptionsItemSelected(MenuItem item):菜单项被选中时触发,这里完成事件处理。选项菜单042.4 高级 UI 组件2.4.3 菜单上下文菜单,通过长按某个视图(View)组件后出现的菜单,该组件需注册上下文菜单。我们经常在 Windows 中用鼠标右键单击弹出的菜单就是上下文菜单。ContextMenu(上下文菜单)042.4 高级 UI 组件2.4.3 菜单使用 ContextMenu(上下文菜单)的步骤如下:重写 onCreateContextMenu() 方法。为 View 组件注

28、册上下文菜单,使用 registerForContextMenu() 方法,参数是 View。重写 onContextItemSelected() 方法为菜单项指定事件监听器。ContextMenu(上下文菜单)042.4 高级 UI 组件2.4.3 菜单ContextMenu 与 OptionMenu 的主要区别在于:OptionMenu 对应的是 activity,一个 activity 只能拥有一个选项菜单;ContextMenu 对应的是 view,每个 view 都可以设置上下文菜单;一般情况下,ContextMenu 常用于 ListView 或者 GridView。Context

29、Menu(上下文菜单)042.4 高级 UI 组件2.4.3 菜单SubMenu 代表子菜单,可包含1N个 MenuItem。子菜单不支持嵌套,所谓子菜单只是在 标签中又嵌套了一层 而已。SubMenu(子菜单)042.4 高级 UI 组件2.4.3 菜单PopupMenu 是锚定到 View 的模态菜单。如果空间足够,它将显示在定位视图下方,否则显示在其上方。PopupMenu(弹出菜单)042.4 高级 UI 组件2.4.4 标签栏由于手机屏幕尺寸的限制,合理使用 Tab 可以极大地利用屏幕资源,给用户带来良好的体验。学会 Tab 的使用方法已经成为学习 Android 开发必不可少的技能

30、了。我们经常使用的微信、QQ 就是使用 Tab 的方式进行主界面的布局的。Tab 选项卡(标签栏)几乎成为了 App 必备的一个功能042.4 高级 UI 组件2.4.4 标签栏1传统的 ViewPager 实现2FragmentManager + Fragment 实现3使用 ViewPager + Fragment 方式实现 Tab4TabLayout + ViewPager 方式5TabActivity + TabHost + Activity 实现方式6ActivityGroup + Activity 实现方式052.5 Handler 消息传递机制在 Android 的设计机制里,为了避免多个线程同时操作 UI 造成线程安全,出于安全考虑,只允许主线程(程序第一次启动时所启动的线程,也称为UI线程)对 UI 进行修改等操作,这时问题就出现了,如果只允许主线程修改 UI,那么如果新线程的操作需要修改原来的 UI 该如何进行的?这时候引入了 Handler,借助 Handler 消息传递机制在新线程和主线程(UI 线程)之间传递消息来实现。05 Handler消息传递机制分析图052.5

温馨提示

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

评论

0/150

提交评论