Skip to content

ui button

Anthony Lee edited this page Oct 14, 2018 · 6 revisions

交互设计-按键

适用平台设备原生示例程序

友善官方的示例程序将 K1、K2、K3(后来分别叫做 F1、F2、F3)键分别拟定主页相应功能为:显示日期时间,显示系统网络状态,显示关机操作;而进入“关机操作”后,K1、K2、K3 功能相应变换为:切换,确认,退出。

这样的功能设计,个人每每使用其关机功能,总记不住按键具体功能,导致按键次数增加,甚至导致误操作。

另外,官方示例程序具体编码实现采用的是 C 和 Python 相结合的方式,C 编写的部分负责按键事件,Python 编写的部分负责图形操作(需要相关 module)。按键事件发生后,通过触发进程信号处理,让图形操作的一端作出相应的处理。实际使用中,进程信号触发后,按键响应感受迟缓;同时按键只存在一种状态:“按下”。

我不是特意去寻找官方示例程序未尽善之处,毕竟仅仅作为一个示例程序,能大致展示,或具备几个实际功能,已然足够。

功能需求

正如 适用设备分析 中提到:两三个按键要使其不至于形同虚设,就需要从交互操作中频率最高的步骤出发去考虑设计功能。

那么,先从按键自身出发,具备的特征是:

  • 按键的状态(按下、复位)
  • 每种状态的持续时间(或者说是两种不同状态的时间间隔)
  • 预定时间段内改变状态的次数

有以上这些内容,相应可以判定单击、双击(或连击)、长按几种动作解释。

  • 按键习惯

由上述动作解释的多样性,可让程序识别出按键的诸多状态;LBKit 同时兼容多个按键状态,即可多键组合预定功能。

那么,既然程序可以识别按键的复杂组合,是否可以根据相应状态设计足够多的指定功能呢?然而,答案是 否定 的。

设计按键,初衷即为简化交互,所有设计功能均须服从按键习惯,错综复杂的功能只会让用户得到无所适从的体验,反而无益。从用户按键习惯出发,按键应尽最大可能固定功能,否则,即使有功能提示的辅助(比如屏幕对应显示等),也会加长交互时间,造成不便。

比如,在 LBPanel 中,考虑手持最省力姿势所对应的中键(K2),赋予最常用功能:单击确定,双击退出,长按特殊处理。

  • 按键寿命

更换按键成本其实并不高,然而,大多以按键作为主要交互途径的简易设备,其设备寿命仍取决于按键寿命。

所以,除了选用耐用、舒适的按键配件外,延长按键寿命的途径是尽最大可能减少用户从初始界面至指定功能之间的按键数量及次数。

待续。。。

Clone this wiki locally