Android交互体验必知:功能按键事件交互体验必知:功能按键事件
开始学习
每一种Android设备一般都会提供除字母和数字外的物理功能按键,这一般是根据不同的Android制造商而有所不同,
比如Sony就只实现了这些功能按键中的三种而已。这些功能按键如果设计良好,对于正在开发的app应用,能给用户
带来很好交互体验。
Android应用主要是基于Activities的设计,这个相信大多数开发者都已经十分熟悉,并可以在官方开发手册中学习到。
而今天我们准备学习的是如何通过实现KeyEvent.Callback这个接口从而能重新定义Android设备上的功能按键,为我
们开发的应用服务。
功能按键的常量定义和方法
KeyEvent类有多个定义好的key常量,表示一个标准的Android设备中的功能按键,列表入下:
功能按键 常量定义 描述
Power KEYCODE_POWER 打开设备或者将设备唤醒
Back KEYCODE_BACK 回到上一屏(页)
Home KEYCODE_HOME 返回主菜单(屏幕)
SEARCH KEYCODE_SEARCH 打开一个搜索
CAMERA KEYCODE_CAMERA 打开摄像头功能
VOLUME
KEYCODE_VOLUME_UP
KEYCODE_VOLUME_DOWN
调节音量大小
读者可以从官方文档中,找到更多关于功能按键的常量定义,以上列表的只是常用的几个。
对于功能按键的调用,常用的回调方法有入下几个:
onKeyDown() onKeyUp()
onKeyLongPress()
而对于设备中的轨迹球或者触摸屏幕,常用的回调方法有入下几个:
onTrackballEvent()
onTouchEvent()
开发者可以选择只实现上面谈到的某些回调方法即可,不需要全部都实现。例如,如果想避免用户偶然按下了
CAMERA或者SEARCH检索的功能键,则只需要在onKeyDown()的回调方法中进行编写代码控制,并返回true的值,
让系统知道当前捕捉的是onkeyDown事件即可。
关于特殊的键
然而,有些特殊的键是开发者没有办法去重新定制的,因为它们直接由系统去调用,比如象power和home键,BACK
回退键也是特殊键之一,尽管如果开发者要重新定制其行为的话,可以重新覆写onBackPressed()方法,但在一般情况
下,强烈不建议开发者这样去做,因为回退键本身功能是回到上一屏的,重新定制的话会给用户带来很多困扰。
下面我们就以一个具体例子说明如何定制这些功能键。