精彩绝伦的android ui设计:响应式用户界面与设计模式
目录《精彩绝伦的android ui设计:响应式用户界面与设计模式》译者序前言第一部分android设计简介第1章用户界面设计和易用性入门2 1.1考虑技术与设计2 1.2理解心智模型3 1.3为用户设计6 1.4没有应用无所不精,选择适合自己的领域9 1.5你是专家,用户不是设计师9 1.6了解用户,为普通人设计9 1.7总结11第2章不要马上开始编程12 2.1原型设计12 2.2设计工具14 2.3用户测试17 2.4总结20第3章考虑为移动和触摸设备设计21 3.1为移动而设计21 3.2为触摸界面设计26 .3.3总结29第4章探索android平台30 4.1 android平台的挑战30 4.2 android的版本36 4.3 android应用的发布38 4.4开源的意义是什么40 4.5总结41第二部分android平台的特性和ui组件第5章android应用架构和在线指南44 5.1 android应用程序结构概览44 5.2 android项目结构概览47 5.3官方android指南48 5.4总结49第6章android的意图系统50 6.1意图让应用程序相互协作50 6.2使用社交网络并分享51 6.3和浏览器一起工作52 6.4 android意图系统的工作原理53 6.5创建自定义行为58 6.6意图无处不在58 6.7意图与第三方api 58 6.8总结59第7章android应用的导航结构60 7.1 android导航系统的组件:活动和意图60 7.2 android导航控件61 7.3总结70第8章主界面应用小部件71 8.1主界面应用小部件的使用71 8.2更新应用小部件数据73 8.3应用小部件布局和功能75 8.4实现应用小部件78 8.5总结80第9章通知及告知用户81 9.1 android通知方法81 9.2何时通知用户83 9.3何时不要通知用户86 9.4避免使用弹出框86 9.5从状态栏通知中获得更多信息87 9.6总结91第10章物理按键、输入法和传感器的设计92 10.1触摸屏的设计92 10.2手机物理按键的设计93 10.3软键盘的设计94 10.4物理键盘设计99 10.5方向键和轨迹球设计99 10.6触控笔设计100 10.7声控设计101 10.8外接键盘、鼠标和触摸板的设计101 10.9智能附件的设计102 10.10传感器的设计102 10.11第二块屏幕的设计102 10.12总结103第11章平台用户界面组件的设计104 11.1使用用户界面小部件104 11.2自定义用户界面小部件111 11.3调整排版113 11.4使用图标117 11.5使用动画和过渡效果121 11.6总结127第三部分可扩展的android设计第12章管理android资源130 12.1使用android资源130 12.2屏幕密度设计132 12.3屏幕大小和形状的设计135 12.4语言和地区设置137 12.5设备控件的设计137 12.6平台版本的设计138 12.7设备模式的设计138 12.8总结138第13章android应用布局139 13.1 android布局策略139 13.2用xml文件和代码布局140 13.3布局的管理141 13.4定义布局的尺寸149 13.5滚动条149 13.6 z轴的布局顺序150 13.7内边距和外边距150 13.8导入与合并布局文件150 13.9自定义布局151 13.10 android开发工具和用户界面生成器151 13.11调试布局152 13.12总结153第14章可缩放的图形154 14.1九宫格图片154 14.2绘图xml 158 14.3用代码绘制163 14.4总结166第15章超越可缩放——响应式设计167 15.1 android设备不仅仅只是手机167 15.2了解响应式设计169 15.3制作响应式用户界面的常见方法176 15.4总结178第16章实现响应式用户界面179 16.1片段简介179 16.2片段和活动结构181 16.3移植现存的应用182 16.4示例程序183 16.5总结193第四部分android ui设计模式第17章用户界面设计模式简介196 17.1用户界面设计模式196 17.2使用ui设计模式的好处197 17.3 android设计指南中的设计模式198 17.4本书介绍的用户界面设计模式198 17.5总结199第18章用户操作设计模式200 18.1使用操作栏模式200 18.2使用快捷操作设计模式206 18.3使用操作抽屉设计模式210 18.4使用下拉刷新设计模式212 18.5使用滑动忽略的手势215 18.6总结217第19章导航和布局设计模式218 19.1使用层叠图库218 19.2使用仪表盘220 19.3使用工作空间223 19.4使用分拆视图226 19.5根据上下文扩展的设计模式228 19.6使用侧边导航230 19.7总结232第20章数据设计模式233 20.1使用动态列表233 20.2使用图片占位符设计模式234 20.3非强制登录模式236 20.4使用拖动重排手柄模式238 20.5总结239第21章用户界面设计反模式240 21.1避免使用启动界面240 21.2避免使用引导界面241 21.3避免使用确认窗口242 21.4避免在界面上使用back按钮243 21.5避免使用菜单按钮244 21.6避免隐藏状态栏244 21.7避免为快捷操作使用滑动覆盖层245 21.8避免使用非android的设计246 21.9总结247 ↑折叠译者序目前市面上有很多关于Android的技术类书籍,还有各种各样的设计类书籍,而本书把与Android开发相关的技术与设计完美结合在一起,别具一格。因为绝大部分开发人员不熟悉设计,而多数设计人员又欠缺Android方面的开发知识,所以阅读本书,可以弥补各自的短板。本书比较适合希望学习设计知识的Android开发人员以及希望了解Android技术知识的设计人员。因为本书涉及的技术非常基础,包含的代码也相当简单,所以设计人员在看本书的时候丝毫不会感到任何阻碍。通过阅读本书,设计人员能够了解Android平台的一些技术知识,通过对这些知识的学习,可以更好地实现针对Android平台的应用设计,不用照搬其他智能手机平台的设计,从而制作出具备浓郁Android风格的界面和交互设计。对于开发人员,熟悉符合Android的设计原则可以减少与设计人员的沟通成本,知道这样设计的优点,了解用户的使用习惯,从而可以在代码层面上更好地实现应用程序,进而创建用户易于使用的优秀应用程序。不过,正是因为兼顾了设计人员,所以本书涉及的技术知识都很浅显易懂,这些对于设计人员来说已经足够,但是对于开发人员还远远不够,所以我建议开发人员阅读完本书之后,再根据实际情况,找到相关知识点对应的其他技术书籍补充知识,这样才能更好地实现本书中的各类设计。本书的结构非常科学、合理,首先讲解用户界面设计的入门知识,然后概览Android平台,接着又介绍Android界面的主要特性和各类UI组件,最后讨论Android设计模式和反模式。这种组织方法由浅入深,易于理解,相信读者可以从中获得一个很好的阅读体验。为了行文流畅不夹杂过多的英文单词,译文中将绝大部分英语专业词汇翻译成中文,有一些没有统一译法的词汇大家看起来可能比较陌生,比如,将intent译为“意图”。所以在专业词汇第一次出现的时候,都加注了对应的英文,方便大家对照。本书的翻译过程中得到了很多人的帮助,尤其要感谢仝鹏飞先生对部分译文提出了非常专业的建议。特别感谢谢晓芳编辑在本书翻译过程中的大力支持,对译者不明白的问题给予了耐心细致的解答并督促译者的翻译进度,此书才得以顺利出版。鉴于译者水平有限,书中难免还有一些翻译不准确甚至译错的地方,恳请广大读者谅解,同时欢迎读者批评指正,共同进步。王东明前言欢迎阅读本书。本书将会帮助你朝着提升自己Android知识的方向迈进。本书并非通篇旨在讲述Android开发,而是基于你现有的知识,帮助你了解如何让应用的用户体验更好。对于那些也许并不熟悉用户界面设计的开发者来说,本书将会概述一些工具和技巧,你可以运用它们来确定用户想要什么样的界面并评估应用的易用性。对于设计者来说,阅读本书会让你从整体上对Android用户界面有一个良好的认识。你将会看到大部分可用的默认组件并了解开发者如何使用它们。本书帮助你将自己对Android平台的了解与开发者结合起来,这样更容易与开发者进行团结协作,从而构建可缩放并且响应式的用户界面。不需要为Android的碎片化问题感到担心,相反,你应该将其视为一个机会。本书阐述了如何应对设计和开发挑战,让你的应用不但可以运行在智能手机上,而且可以运行在平板电脑上。你将会学习到如何让应用适配屏幕大小各异的终端,充分利用屏幕的实际空间,为用户提供最佳的用户体验,而不用操心设备的问题。本书主要内容本书阐述了Android平台为你提供了什么功能。我将会说明如何以及何时使用它自身提供的组件。Android平台及其文档极其庞大。面对如此庞大的信息量,刚开始查找有用的信息时经常不知所措。本书旨在帮助你了解自己需要什么信息以及需要注意什么。你会了解哪些组件曾经被其他人用来构建精彩应用并学会如何以及在什么场景中使用它们。从设计到实现,本书介绍了你需要做哪些工作来让应用适配数目巨大的终端。你将会逐渐了解响应式设计的含义以及为什么它在Android平台上作用巨大。本书还讨论了Android用户界面的设计模式和反模式。这些都是关于Android用户界面设计的注意事项。设计模式可以让你学习他人的长处并给予你设计和开发的思路。第一部分本书第一部分将以用户为中心的方法论和Android平台作为一个整体进行介绍。这部分对开发者和设计者都适用。开发者可能已熟悉Android平台,但是也许对如何在制作应用项目的早期就让用户参与进来的过程并不是很了解。在项目的早期就让用户参与进来可以帮助你明确想要创建一款什么样的应用,以及用户将会如何使用这款应用。把这一部分工作做好可以帮助你专注最重要的功能,从而防止所谓的“功能蔓延”的问题,这种问题将会导致你的应用逐渐变得臃肿不堪。部分设计者和开发者对于Android平台没有一个清晰的认识,它的复杂性(比如,著名的碎片化问题)和各式各样的终端设备。如果你刚好可以对号入座,那么这一部分也会为你展示Android平台光彩夺目的一面。第二部分进一步介绍了Android平台,阐述了Android应用的架构以及模块之间如何通信。这部分也将展示可用的用户界面组件以及用法。第三部分深入讲解了灵活的Android设计,以及如何让你的应用运行在所有的终端设备上,从智能手机到平板电脑。第四部分本书最后一部分通过用户界面设计模式和反模式,讨论了Android平台用户界面上该做和不该做的原则。安装配套应用本书有一款配套应用,可以安装在Android设备上,在你阅读本书时,可以通过这款应用浏览书中的例子。这款应用囊括了本书所有的例子,通过体验这些示例程序,能让你更轻松地明白书中的概念并能够看到这些例子在实际中如何在自己的设备上运行。 ↓展开全部内容书摘第一部分Android设计简介第1章用户界面设计和易用性入门一款应用(app)最重要的品质就是易用性(usability)。如果用户不知如何得到它,或者不清楚如何使用,那么这个应用做得再有特色也无济于事。在移动应用市场残酷的环境下,用户几乎总能找到替代品。如果一款应用不能让人感觉良好,或者用户不知道如何使用它的主要功能,那么用户极有可能卸载这款应用,不会给它第二次机会。用户通过用户界面(UI)来操作和浏览你的应用,除此之外的一切元素,也都会在用户界面中反映出来。假如一款应用的杀手级特性提供了下一代云通信技术(或者应用包含任何其他一些了不起的功能),但是并不直观,那么你会面临花费了大把的时间,却构建了用户甚至都没有尝试过的一些功能的风险。想要把用户界面做好,需要在设计上下工夫。本章介绍的一些概念和观点可以让读者更轻松地理解在设计上投资的重要性。本章还阐述设计过程中的一些重要概念并提供了一些想法,旨在让用户成为设计过程中不可或缺的一部分。 1.1考虑技术与设计用户界面设计不是一门精密科学,它也不会自动生成。它需要努力付出并投入资金。我职业生涯中的绝大多数时间都是在技术驱动的公司里度过,也就是所谓的开发者工作室。几乎在整个职业生涯应用的制作过程中,我都不得不争取要求加入设计依据。几乎所有雇用设计者或者让设计者参与进来的请求要么被回绝要么被严重误解。在一些公司里,认为设计者是画图标的人。在另一些公司里,认为设计者的存在就是浪费金钱和时间。在这些公司中,工程师或者产品团队经常自己做设计;有的时候设计源于偶然。尽管不同的项目会有各种各样的结局,但是始终都缺乏设计。产品在工程师眼中简单易用,但工程师无法理解为什么用户不能像他们所期待的那样使用这款产品。技术团队通常会这样说:“那个按钮明明就在那里,用户应该知道如何使用它。他们太笨了!”我也曾经在另一种极端的公司工作过。所有的工作都是设计驱动的,只有设计者参与早期的客户见面会,选用的技术也没有参考团队的技术特点。设计工作用Adobe Photoshop和InDesign实现,并没有考虑到技术的可行性,这将把技术团队逼入绝境,他们无法完成设计者想要的设计。两种极端都不可取。在这两种情况下,初衷与结果都将大相径庭。我也有幸参与了所有的工作都做得恰到好处的一些项目。与懂得软件工程并不是简单编程的设计者或者设计团队一起工作,并且拥有一支认可用户交互设计和视觉设计能够创造绝妙设计的开发团队。设计人员与开发人员密切协作所创造的价值远远大于他们各自创造的价值。致开发人员——用户与你的思维方式并不一样!有人已经学习过用户界面相关的知识并做出了专业的设计。不要认为你做了相关的工作就不需要用户。用户知道如何操作你的用户界面证明不了什么,不会操作相同用户界面的用户也不能证明他们愚笨。用户不会用,说明用户界面设计得很糟糕。设计人员了解用户界面的结构,他们也懂得如何测试并验证这种设计是优秀的。信任你的设计师们,他们不会因为怀有恶意或者想让你更努力工作而提出用户界面修改意见,他们想要修改界面是因为这些修改可以让用户体验更好。致设计人员——软件工程并非单单只是编程。事实上,编程仅仅占开发者的一小部分时间。制作成功的软件产品需要谨慎的计划、架构设计、对象关系设计、模块组件设计、数据库设计、可维护性计划、部署、质量保证等其他事宜。如果你知道怎样写脚本,那这将是一个很好的开端。但是写脚本并不是软件开发。基于Photoshop制作的用户界面示意图来制作一款合格的软件产品并不简单,这需要时间、计划,尤其是经验!相信你的开发人员,他们没有花费大量时间来制作一个界面不是因为他们懒惰。他们把时间花在计划上,是为了让程序运行更流畅也更容易维护。这样整个团队就可以一起调整完善用户界面,修改也不会令人不知所措。 1.2理解心智模型现在应该换个方向,从用户的角度考虑应用。当用户第一次看到你的应用或者当用户再次使用这个应用的时候,他们的脑海里会呈现出什么?本节介绍一个非常重要的概念——心智模型(mental model)。心智模型是用户在大脑中对应用的功能形成的模型。事实上,人们面对所有事物的时候都会这么做。当我们学习如何开车的时候,我们会对车辆如何工作建立一种心智模型。这种模型并不一定要在技术上是正确的才能使司机受益。比如,实际上,在现代汽车中,方向盘没有直接与前轮相连,但这并不重要。我们还是可以假设它们连在一起。我们可以想象,当转动方向盘的时候,会带动一系列的齿轮旋转,最终让前轮转变方向。尽管这个模型在技术上做了简化,但是可以帮助我们理解和模拟在驾驶汽车时,车辆是如何工作的。在我们的心智模型中,转动方向盘与现实世界中转动方向盘的效果一致,所以在现实生活中按照此心智模型驾驶一辆汽车完全没有问题。我们认为自己明白了车辆如何工作,感到非常高兴。人们在使用应用的时候,也认同一样的道理。对于用户来说,能让他们在脑海里模拟程序的功能,预测会在何时发生什么非常重要。心智模型是用户界面设计中极其重要的概念之一。用户界面设计必须支持用户的心智模型,同时应用要做到风格一致,功能可预测。如果应用与用户的心智模型保持一致,那么这款应用将会易于使用。如果用户能非常轻松地对这款应用建立心智模型,说明这款应用是直观的。用户界面设计中的每件事归根到底都与用户的心智模型有关,每个与用户体验有关的问题,都是由于此应用的用户心智模型与应用的实际表现不一致而导致的。 1.2.1构建心智模型在现实生活中,能够通过简单观察物体外表推断出物体的许多物理属性。你会知道它们有多重,知道通过什么方法使用它们,还知道用什么方法不奏效。对于实体来说,你可以通过亲身体验来确定它们如何工作。当你使用软件时,会受到像素的影响。如何确定用户们知道哪些功能怎样使用?理论上,问题的答案非常简单,但是在实际中困难重重。你需要引导用户,用户界面必须富有逻辑性,并且包含界面中的各项功能是如何工作的视觉线索。
12.98MB
文件大小:
评论区