这一篇是我在Using on-screen keypad in MIDlets in S60 5th Edition devices的中文翻译,总共翻译了15天,中间虽然夹杂着更改工作达人的布景,不过仍算是久的了,网址在在S60第五版机器的MIDlet里使用荧幕键盘!
为了备份,并转贴在此:
概论
S60第五版介绍了触控荧幕以及640 x 360像素的较大荧幕,为了让这个设备能较容易地执行旧版的MIDlet这里有一个称作荧幕键盘的MIDlet,它提供了MIDlet向后相容的功能,这个功能使用Canvas,但是最初不是为了触控设备用的。
荧幕键盘从Canvas那里用了部份的荧幕然后Canvas应用程式提供了可能使用键盘来产生键盘事件,指针事件仍然可以在Canvas区域运作除了在荧幕键盘的区域外都可以使用。
用法
荧幕键盘在每个安装的MIDlet套件都会自动发动,但使用者可以从应用程式管理设定来改变荧幕键盘的显示与否,可能的值 有”off”、”Navigation keys only”及”Game and navigation keys”,该设定是应用程式的设定所以也可以在每个安装的MIDlet套件中来做不同设定,荧幕键盘的状态是使用JAD的参数”Nokia- MIDlet-On-Screen-Keypad”来定义,他的可能值有”no”、”gameactions”及”navigationkeys”。
Nokia-MIDlet-On-Screen-Keypad: no Nokia-MIDlet-On-Screen-Keypad: gameactions Nokia-MIDlet-On-Screen-Keypad: navigationkeys
三个可能的荧幕键盘设定:
- No keypad
- Navigation keys keypad: game actions UP, DOWN, LEFT, RIGHT and FIRE
- Game actions keypad: game actions UP, DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B GAME_C and GAME_D
键盘还包括两个功能键按钮,注意,荧幕键盘没有数字或字元键,只有上面列出的键,另外也要注意,假如应用程式已经定义荧幕键盘设定使用者就不能改变 它,假如这个设定没有在JAD属性中定义,使用者就可以更改,荧幕键盘设定对整个MIDlet套件皆有效,预设状况下,假如键盘设定没有定义,游戏按键会 显示。
下面的图片显示纵向的360 x 640荧幕的三个设定:有导航及游戏键的荧幕键盘、有导航键的荧幕键盘及没有荧幕键盘,荧幕的解析度(实际Canvas的绘图区域)是:
- 没有荧幕键盘的全荧幕:360 x 640
- 有导航键的荧幕键盘全荧幕:360 x 384
- 有导航及游戏键的荧幕键盘全荧幕:360 x 360
- 没有荧幕键盘的非全荧幕:360 x 487
- 有导航键的荧幕键盘非全荧幕:360 x 292
- 有导航及游戏键的荧幕键盘非全荧幕:360 x 240
下图显示横向640 x 360荧幕的三个设定:有导航及游戏键的荧幕键盘、有导航键的荧幕键盘及没有荧幕键盘,荧幕的解析度(实际Canvas的绘图区域)是:
- 没有荧幕键盘的全荧幕: 640 x 360
- 有导航键的荧幕键盘全荧幕: 372 x 360
- 有导航及游戏键的荧幕键盘全荧幕: 320 x 360
- 没有荧幕键盘的非全荧幕: 502 x 288
- 有导航键的荧幕键盘非全荧幕: 298 x 288
- 有导航及游戏键的荧幕键盘非全荧幕: 251 x 288
上图也显示JAD的属性”Nokia-MIDlet-Original-Display-Size”实际的运作情形。
在有键盘的设备里的荧幕键盘
在有触控荧幕及外加键盘的设备里(像Nokia N97) 开启键盘会增加荧幕键盘的一个新模式,当键盘开启时,箭头和游戏键被移除,功能键的标签会显示在设备的右侧或底部,其位置可以使用”Nokia- MIDlet-On-Screen-Softkeys-Position”这个系统属性来改变,假如没有使用这个属性,预设功能键显示在右侧,注意,假 如”Nokia-MIDlet-On-Screen-Keypad”属性有”no”的值,功能键就不会显示。
Nokia-MIDlet-On-Screen-Softkeys-Position: bottom Nokia-MIDlet-On-Screen-Softkeys-Position: right // default, this is used, if no property exists in the jad file
Canvas荧幕尺寸是580×360像素时,功能建在右侧,当尺寸是480×360像素时,功能建在底部。