Android开发之程序猿必需要懂得Android的重要设计理念
前几天去參加了带着自己的作品去參加服务外包大赛,由于签位抽到的比較靠后就等待了蛮久,就跟坐在前面的一起參赛的选手開始讨论Android的开发经验。各自给对方展示了自己的作品,小伙伴就建议我看一下官方Design的设计原则会非常有帮助。今天就想依据自己的理解把其设计原则分享给大家。总共是三大点。17小点。
一、让用户沉醉
(1)注重设计的细节
精致的界面 , 设计恰当动画或适时的音响效果都是一种快乐体验。微妙的影响将导致一种游刃有余的感觉,感觉到一股强大的力量就在眼前。
(2)尽可能使用形象化的图标而不是普通的button或菜单
在你的应用程序里同意用户直接接触和操作实体对象。
它将降低了用户所需的认知负担。以及运行一项任务的时间,而在情感上更让人满足。
(3)让用户能够展示个性
用户喜欢添加自己喜欢的元素以此来添加自己的归属感。既要提供合理的预设值,也要给用户提供可选的不会妨碍主要功能实现的效果选择。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2Vyb2dlbGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
(4)去了解用户的行为
去学习用户的使用行为,而不是要求他们做出相同的选择。将常常使用的功能放在显而易见的位置。提高用户的体验感觉
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2Vyb2dlbGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
二、添加易用性
(1)精简文字
用简单的短语词组,句子太长会引起用户的厌恶感。
(2)图片比文字更有吸引力
考虑使用图片来阐释创意和理念。图片非常easy的会得到用户的注意力和好感。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2Vyb2dlbGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
(3)让用户有终于的决定权
先推測用户的行为和想法而不是直接去询问用户,太多的选择和决定会让用户厌烦。除非用户的选择会造成不良的后果。
(3)在合适的场景出现合适的选项
假设一下子让用户看到太多的东西,会让用户认为迷茫和受打击。
尽量将功能和信息细分化,变成一小块一小块。适当的隐藏不重要的选项和教导用户怎样前行,这会让用户认为自己非常愚蠢。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2Vyb2dlbGlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
(4)用用户清晰的知道应用的功能结构
让用户知道你的应用程序的不同的Activity之间的内在逻辑和功能上的联系。将功能的进程或流程的进度反馈给用户。
能够通过导航的实际或者顶端tab界的设计。
(5)不要遗失用户的过往信息
记住用户的设置、历史浏览信息和在手机、平板电脑,和电脑的自己定义创作。这将使你的应用上升一个级别。
今天就写到这把。还有8个点没讲到。看大家的反馈在看看写不写下把。
Android开发之程序猿必需要懂得Android的重要设计理念的更多相关文章
- Android开发之程序猿必需要懂得Android的重要设计理念2(5.20更新版)
上篇文章介绍了Android开发的设计理念的一部分,并没有得到博友们的多大认可,仅仅看到了一位博友在以下留言期待下一篇文章的发表,为了这小小的唯一支持.我决定继续把后面的8个要点介绍一下,自己也潜心反 ...
- Android开发快速入门(环境配置、Android Studio安装)
Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星.HTC.中国移动.Verizon和AT&T等)的支持,因而不能不加以学 ...
- Android开发学习总结——搭建最新版本的Android开发环境
原文出自:https://www.cnblogs.com/xdp-gacl/p/4322165.html#undefined 最近由于工作中要负责开发一款Android的App,之前都是做JavaWe ...
- android开发学习笔记系列(1)-android起航
前言 在学习安卓的过程中,我觉得非常有必要将自己所学的东西进行整理,因为每每当我知道我应该是如何去实现功能的时候,有许多细节问题我总是会遗漏,因此我也萌生了写一系列博客来描述自己学习的路线,让我的an ...
- Android开发学习之路-该怎么学Android(Service和Activity通信为例)
在大部分地方,比如书本或者学校和培训机构,教学Android的方式都基本类似,就是告诉先上原理方法,然后对着代码讲一下. 但是,这往往不是一个很好的方法,为什么? ① 学生要掌握这个方法的用途,只能通 ...
- .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器
.NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实. ...
- Android开发-取消程序标题栏或自定义标题栏
注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 在Android开发中,跟据需要我们有时候需要自定义应用程序的标题栏或者取消程序的标题栏,下面本菜鸟在此记录与分享一下自己使用的方法 ...
- Android 开发笔记“程序安装包APK的制作”
资源来源:http://blog.csdn.net/qualcent/article/details/6959547 完成Android项目后,需要将程序打包成APK文件(Android Packag ...
- android开发时程序出现崩溃问题
原因:项目目录下的:src与gen中的包名不一致时,出现问题 <manifest xmlns:android="http://schemas.android.com/apk/res/a ...
随机推荐
- [模板]网络最大流 & 最小费用最大流
我的作业部落有学习资料 可学的知识点 Dinic 模板 #define rg register #define _ 10001 #define INF 2147483647 #define min(x ...
- java并发编程之美-阅读记录3
java并发包中的ThreadLocalRandom类,jdk1.7增加的随机数生成器 Random类的缺点:是多个线程使用同一个原子性的种子变量,导致对原子变量的更新产生竞争,降低了效率(该类是线程 ...
- 简述ArcGIS的空间连接(Spatial Join)与字段映射(Field Map)操作
插个广告,制作ArcGIS的Tool工具学习下面的教程就对了:零基础学习Python制作ArcGIS自定义工具 牢骚一下 在使用ArcMap进行空间连接操作的时候,往往会有两种特殊需求,其一是连接重叠 ...
- 【转】 linux下配置squid 服务器,最简单使用方式
linux下配置squid 1.什么是squid Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid有广泛的用途,从作为网 ...
- JDBC、ibatis(mybatis)、Hibernate有什么不同?
①JDBC编程流程固定,同时将sql语句和java代码混在了一起,经常需要拼凑sql语句,细节很繁琐: ②ibatis(mybatis)它不完全是一个ORM框架,因为MyBatis需要程序员自己编写S ...
- python函数参数*args **kwargs
毕业多年,把C++都就饭吃了....今天居然在纠结什么是形参什么是实参..... 定义函数里面写的参数就是形参,因为没有内存占用,实际调用时写的参数就是实参,因为有内存占用和传值 然后就是位置参数,可 ...
- Qt 显示网页的控件
Qt5.6以下的版本,基于QtWebkit控件Qt5.6以上的MSVC版本,基于 Chromium 的浏览器引擎 Qt WebEngineQt5.6以上的mingw 版本,只能采用QAxWidget ...
- 关于Python实现Interface base64加解密方法
''' 以下Python Code运行环境为windows10, Python版本为3.5.3 涉及的库:base64,json,unittest ''' # coding=utf-8 # impor ...
- Delphi DBGrid 实现复选框
1 在数据库对应的表中加入 bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGri ...
- mysql 获取任意一个月的所有天数。
SELECT ADDDATE(y.first, x.d - 1) as dFROM(SELECT 1 AS d UNION ALLSELECT 2 UNION ALLSELECT 3 UNION AL ...