(8 Android) 用户界面UI设计

3.1.1 Android界面视图类

Android 图形化的用户界面(Graphical User Interface , GUI) 采用了结构清晰的MVC模型(Model-View-Controller) ,其具体含义:

·提供了处理用户输入的控制器(Controller) ;

·显示用户界面的视图(View) ;

·保存数据和代码的模型(Model) 。

在Android MVC中,控制器是由Activity组件完成的,它能够接受并响应程序的外部动作,如按键动作或触摸屏动作等,每个外部动作作为一个对立的事件被加入队列中,按照"先进先出"的规则从队列中获取事件,并将这个事件分配给所对应的事件处理函数。

控制器负责接受并响应程序的外部动作;通过视图反馈应用程序给用户的信息(通常是手机屏信息反馈) ;模型是应用程序的核心,用于保存数据和代码。

Android视图类android.view.View提供了用于处理屏幕事件的多个内部接口(如OnClickListener等)及常用方法(如setVisibility()等)。

3.1.2 Android用户界面事件

在Android系统中,各种屏幕手势的相关信息(如操作类别、发生时间等)被自动封装成一个KeyEvent对象,供应用程序使用。因此,在Activity的事件处理方法中,需要使用表示手势事件对象的事件参数event。

Activity提供了响应各种屏幕手势的方法,如按键方法onKeyDown()、松开按键方法onKeyUp()、长按键方法onKeyLongPress()等。

除了使用界面事件外,还有键盘事件。类KeyEvent定义了分别对应于Back键、Home键和Menu键的键盘扫描码(实质上是静态常量)。

Activity提供的方法onKeyDown(keyCode,event)用来捕捉手机键盘被按下(短按,不是长按)的事件。其中, 参数keyCode 表示键盘扫描码,通常使用类KeyEvent的静态常量表示。

Android程序通常需要侦昕用户和应用程序之间交互的事件。对于用户界面中的事件,侦听方法就是从与用户交互的特定视图对象中截获这些事件。

事件侦昕器(Event Listener)是视图View类的内部接口,包含一个单独的回调方法。这些方法将在视图中注册的侦听器被用户界面操作触发时由Android框架调用。下面这些回调方法被包含在事件侦听器接口中:

• onClick()包含于View.OnClickListener中,单击时调用;

• onLongClick()包含于View.OnLongClickListener中,长按时调用;

• onTouch()包含于View.OnTouchListener中,当用户执行的动作被当作一个触摸事件时被调用,包括按下、释放和在屏幕上进行的任何移动手势。

3.1.3 界面与布局

res/layout目录下存放定义UI设计的XML文件。UI设计有两种方式: 一种是Text视图方式,在XML文件中,可以直接写布局及控件代码:另一种是Design视图方式,可以直接拖曳控件至设计区域。

布局相当于一个容器控件,其属性android:padding(或android:paddingLeft等)用于控制该容器内第一个元素与父布局(容器)之间的间隔,而属性android:layout_margin等用于设置同一布局内各元素之间的间隔。布局内控件的常用布局属性还有以下几个。

• android:layout_width表示控件的宽度。

• android:layout_height表示控件的高度。

• android:id表示控件的标识。

• android:layout_below表示将该控件的底部置于给定ID控件之下。

布局类型分为如下几种:

1 .线性布局

线性布局使用成对的< LinearLayout >标签,必须指定分别表示容器宽度和高度的两个属性android:layout_width和android:layout_height,它们的取值为match_parent(匹配父容器)、wrap_content(自适应控件大小)或具体值(以dp为单位)。

线性布局可选属性主要是android:orientation,当取值为vertical时称为垂直线性布局,当取值为horizontal时称为水平线性布局,且以vertical为默认值。

垂直线性布局时,每个控件占一行;水平线性布局时,控件自左向右排列,控件太多时也不会转行。

注意:调整线性布局内的各个控件之间的间距,使用android:layout_weight属性比较方便。

线性布局也可以嵌套使用。例如,在垂直线性布局里嵌套一个水平线性布局时,就可以在一行内水平放置多个控件。

2.相对布局

相对布局在布局文件中使用< RelativeLayout >标签,除了第一个元素外,其他元素需要参考另一个元素进行相对定位(含方向、偏移和对齐方式) ,常用属性如下。

• android:layout_below表示位于下方。

• android:layout_above表示位于上方。

• layout_toRightOf表示位于右方。

• layout_toLeftOf表示位于左方。

• android:layout_marginTop表示偏移(正值向下,负值向上)。

• android:layout_marginLeft表示偏移(正值向右,负值向左)。

• android:layout_alignLeft表示左对齐(默认)。

• android:layout_alignRight 表示右对齐。

• android:layout_alignTop 表示顶部对齐(默认)。

• android:layout_alignBottom 表示底部对齐。

• android:layout_alignBaseline 表示垂直居中。

3.约束布局

传统的Android开发,其界面基本都是靠编写XML代码完成的。约束布局是Android Studio 2.3之后推荐且默认使用的布局,完全使用可视化的操作方式,在布局文件中使用标签声明约束布局。

当拖曳某个控件至界面时,系统提示缺少约束的红色警告,表明程序运行时该控件将出现在屏幕左上角(0,0)位置。解决方法有如下两种:

(1)单击该控件,使用魔术棒工具来自动添加用于确定控件位置的约束线。此时,该控件至少存在两条约束线;

(2)单击该控件,从出现的四个圆点中,任选一个圆点并拖曳到四周的边线或控件圆点来建立位置约束。重复此操作,直到红色警告消失。

选中某个己经添加约束的控件,若使用清除工具,将删除己经建立的所有约束线;若单击其中的某条约束线的圆点端,将删除本约束线。

4.帧布局

帧布局像一层层画布,添加的控件一层层地放上去。帧布局添加的各个控件默认都将对齐到屏幕的左上角。

在一个有两层的帧布局中,如果浮于上面的第二层可以看到下层,是因为background属性设置包含了透明度参数,有如下两种实现方式。

方法一是设置控件的背景色,使用如下属性:

android:background="#aarrggbb"

其中, aa表示透明度参数(十六进制) 。

方法二是在程序里使用如下方法:

v.getBackground().setAlpha(a); / /透明度参数a取值范围为0--255

其中,v为View对象,a为十进制数。

Android用户界面的设计方法心得,(8 Android) 用户界面UI设计相关推荐

  1. c语言课程设计总结心得大全,c语言课程设计的心得体会

    c语言课程设计的心得体会 相关内容: 课程设计的理论产生于对课程设计实践的考察.下面是第一范文网为大家带来的课程设计心得体会,希望可以帮助大家.课程设计心得体会范文1:机械设计课程设计心得体会经过一个 ...

  2. 利用计算机辅助药物设计方法有何优点,计算机辅助药物设计是什么?关于计算机辅助药物设计的详细介绍...

    计算机辅助药物设计即利用计算机的计算,逻辑判断,图形显示等功能进行药物设计.目前广泛应用于药物研发中,在农药,天然药物多靶点研究中都起到了重要作用,极大地缩短了药物研发的时间. 概述 随着计算机科学的 ...

  3. gmid设计方法进行二级运放的设计与仿真

    该文章使用gmid设计方法进行二级运放的设计与验证 文章目录 设计要求 一.设计原理图 二.设计步骤 1.确定补偿电容Cc的大小 2.在满足压摆率的情况下,按最大功耗分配电流 3.根据GB确定M1和M ...

  4. html网页设计课程的思维导图,UI设计初级教程学哪些?课程大纲和思维导图分享给你!...

    如果你现在还不会ps一张照片,那么说明你落伍了,如果一个企业没有一个专业的UI设计师,那么这个企业的前端后端产品应该不会太美,所以,UI设计师是一个企业的灵魂,有了设计师,一切都变得更美了,UI设计行 ...

  5. java ui设计用什么_什么是UI设计?

    UI设计是什么? 做为一名设计师前辈我来帮你和帮想学习UI设计的小伙伴们解答一下这个问题 首先大家先跟着我来了解一下什么是UI设计 我们只有了解了什么是UI设计才能进一步的学习. 什么是UI设计? U ...

  6. 目前学UI设计好就业吗?做UI设计还会有发展潜力?

    对很多朋友来说,UI设计是一个很陌生很神秘的职业,充满了期待,也感觉很彷徨.那我们当下学UI设计好就业吗?做UI设计还有发展潜力吗?UI设计小白如何实现自身的职业化之路呢?在这里,来一一回答这些问题! ...

  7. UI设计是什么?推荐的UI设计软件有哪些?

    在介绍这么文章在,我们先来来接一下UI.其实呢,UI就是User Interface(用户界面)的简称.我们常说的UI设计,其实是指对软件的人机交互.操作逻辑.界面美观的整体设计.一个好的UI设计作品 ...

  8. 【设计】近期发现的 APP UI 设计趋势

    翻译文章,作者:AppMaster.io https://appmaster.io/blog/top-10-mobile-app-ui-design-ideas-2022 -------------- ...

  9. 北京ui设计工资一般多少?北京ui设计公司排名?

    北京ui设计工资一般多少?想要前往北上广的伙伴们一定会有这样的疑惑.北京本身就是处于一个高薪资高发展的城市,那么北京ui设计工资一般多少,其结果一定是不会让你们失望的.所以接下来我们就来说说吧! 北京 ...

最新文章

  1. MATLAB中line函数的用法
  2. 京东2020算法工程师0824笔试题整理
  3. 去掉viewstate保持在页面中的一大串字符的方法
  4. 泛微oa部署linux步骤,泛微oa部署微搜功能手册
  5. 单场淘汰制场次计算方法_怎样用单循环制进行的比赛计算场数
  6. 控制萤石云摄像头转头
  7. Java 设置图片大小
  8. windows10完全卸载windows自带的skype
  9. 利用倾斜摄影技术土方工程计算
  10. linux 清除swap 数据,linux清除swap
  11. 纹波测试方法(收集整理)
  12. 华为鸿蒙型号,华为鸿蒙2.0正式版系统来了!可升级名单公布!你的机型在么?...
  13. java旋转太极图_如何用CSS纯代码画一个旋转的太极图(附代码)
  14. c语言break跳出几层循环,break跳出几层循环
  15. 网站实现快速排名的原理与影响
  16. windows8 下载
  17. Java中创建目录 或 创建文件
  18. c语言中怎么调用自己定义的函数,c语言中怎么调用自己定义的函数?
  19. DeFi之道访谈:如何参与Web3?哪些细分赛道值得关注?
  20. 最新绝地求生服务器中文版,绝地求生正式版本服务器翻译最新 | 手游网游页游攻略大全...

热门文章

  1. 3dmax和python做3d动画_Autodesk 3ds Max 2015(3D动画制作3dsmax2015)官方中文版下载 - 下载吧...
  2. 消灭顽固的exe病毒,拯救宝贵的文件
  3. 网站被挂马怎么解决_网站被黑解决办法
  4. visio2007类图实现关系
  5. 面试常见问题的回答方式
  6. Avue 表单设计器
  7. 二叉堆的原理和构建、调整
  8. 编程 ,矩阵的相加c语言,VB中如何编程序以实现两个矩阵相加? 谢谢了。。。...
  9. p2p音视频解决方案
  10. JS获取日期(年/月/日/时/分/秒)以及完整格式转化(补0)