Showing posts with label keyboard. Show all posts
Showing posts with label keyboard. Show all posts

Saturday, January 08, 2011

Android 2.3 Gingerbread Keyboard and CedIME

Android 2.3 Gingerbread 還沒推出(除了 Nexus S),但是它的 source code 大約兩週前己經釋出。老實說 Android 更新如此頻密也是有點煩,尤其它的鍵盤每次必然大改,要追上它的修改可是不容易啊。

但是當我看到 Gingerbread 新鍵盤的外型:



加上親自試用過之後實在是愛不釋手,結果還是忍不住把它的 source code 抓來研究了一番。

這次的改動比以前的改動都要大,事實上外觀的部分它根本整個重寫了:灰色的字母鍵及黑色的功能鍵把整個鍵盤的佈局更清楚的勾劃出來,因此使用者能夠更容易找到目標按鍵;另外每個鍵的圖像縮小了些,加上字體用上了粗體,這樣使用者能夠更清楚認出每個鍵要按的目標位置,因此即使現實上鍵盤大小一樣,新的鍵盤光是靠外觀上的小手段就足以提升使用者按鍵的準確率了。




Auto-correct 的功能和以前一樣,但是,同樣只是利用 Spacebar 上顯示的一個簡單光條,使用者就可以知道自己打的字有沒有出錯,可以不必常常看著 Candidate List 來檢查自己有否打錯字。



Popup mini keyboard 也是完全重寫了,只要長按就會出現的 Popup mini keyboard,不需要再按第二下來選字,只要按著的手指滑過去要選的字的下方就可以選到要用的字,整個過程比以前更加流暢,如果你要選的字就是在 mini keyboard 中的第一個字,那麼等於是長按一下那個鍵就可以選到 mini keyboard 中的字,這根本就等於是 HTC Keyboard 長按第一行字母可以出數字的功能了,只是這個 mini keyboard 的方法的確更好更全面。



事實上,Gingerbread keyboard 的第一行字母上的數字鍵正是用 mini keyboard 的功能做出來的。



還有一些不容易發現的小改動,不看 source code 確實是沒可能發現的。這裡和大家分享其中兩個:

大家都很熟悉的 Key Feedback, 就是按下每一個鍵都會出現的一個 popup 顯示:



以前都是按下去就立即出現,放手就立即消失的,但是 Gingerbread 的 Key Feedback 卻不是如此,按下去立即出現,但是放手時卻是做了一個 0.07 - 0.1 秒的 fade out 效果。因此整體的感覺就是鍵盤界面比較柔和及流暢,沒有了以前硬梆梆的感覺。

第二個改動也是不容易發現,由於以前各按鍵的邊界都是定好的,加上 touch screen 的特性(手指接觸螢幕不只一點),因此有機會當手指按在兩鍵中間的時候會導致 Popup Feedback 在兩鍵間跳來跳去(大家可以試試在 CedIME 1.2.2 裡按著 D 鍵和 F 鍵中間慢慢調整位置盡量靠兩鍵中間),如果最後位置正確的話就可以看到上述的效果了。Gingerbread 的鍵盤修正了這個問題,因此是按鍵的感覺變得更實在和更準確了。

說了一大堆,當然,大家最關心的問題:CedIME 會否更新呢?答案當然是肯定的,不但如此,CedIME 仍然會支援所有 Android 1.5-2.3+ 的所有版本,所以即使你還在用 HTC Magic Android 1.5,你還是可以享受到 Gingerbread 裡的最新鍵盤。

當然,每次改版總是有人會覺得以前的版本較好,鑒於這次改變較大,為了滿足舊版的死忠粉絲,這次我特意把 CedIME 1.2.2 版也同時放到 Market 上,App 名為 CedIME Old Version。因此你可以盡情試用新版,萬一覺得不好還是想用回舊版,只要到 Market 下載舊版就好。當然,我本人當然希望 CedIME Old Version 的使用者是越少越好。

最後,如果你很喜歡 CedIME,並希望支持 CedIME 的開發工作,請考慮購買 Market 上的 CedIME Donate app,買了 CedIME Donate 功能上基本上沒有分別,因為我還是非常希望 CedIME 能繼續免費給大家使用,唯一不同的只是少了廣告以及多了一個自選顏色的選項。

同時也希望大家能夠多多向朋友推薦 CedIME,越多人使用,就是對作者最好的支持了。






Thursday, July 15, 2010

Froyo Keyboard 研究

Froyo 的 source code 早些時候已經 release 了。但是我這兩天才找到時間仔細去看看它有什麼新功能。這裡簡單整理一下,大家將來或者有可能在 CedIME 裡看到類似的功能。

可見的新功能有
Extended keypad for numeric+symbols keys
按著鍵盤任何位置然後向上掃,會顯示兩行新的鍵,有數字鍵及一些常用符號。

Drag on spacebar to switch language
如果在設定裡選擇了多種語言,則按著鍵盤 spacebar 然後左右掃可以轉換輸入語言。

隱藏的新功能
Multi-touch support
當用雙手打字的時候,有可能會發生手指在上一個按鍵還沒離開鍵盤的時候另一隻手指就已經按到下個鍵的情況,這種情況正常來說只能記錄到後來的按鍵。但 Froyo 的鍵盤專門對此做了處理,兩個按鍵都能夠成功輸入。

Larger hit area for next probable key
根據字典,Froyo 鍵盤會計算出下一個將會被輸入字母的機會率,然後暗地裡增加那個字母鍵的大小。例如我剛打: appl 。則下一個字母 e 的機會率會比 r 為高,如果你按到 r 鍵偏左的話就會輸出 e 而不是 r 。

Monday, May 10, 2010

為什麼 Android 的實體鍵盤沒有 auto correct 功能

Android 的 Virtual Keyboard 有一個 auto correct 的功能相信大家都知道,例如當我想輸入 "android" 卻打成了 "ancroud",Candidate List 上會自動出現 ”android” 的選項,另外由於 "ancroud" 不是一個字,因此 Keyboard 會自動為你選擇 "android" 為預設的選擇,當你按 space 就會自動選擇了 "android" 而不是 "ancroud"。

這個功能其實是根據使用者手指按到 Virtual Keyboard 上哪一點(螢幕上的 x,y 座標),實時計算出來的。例如我按到 S 鍵的右上角,那麼 Virtual Keyboard 記錄的實際上可能是 S,D,W,E 四個鍵,按可能性排列。用上面的例子來說明,輸入 "ancroud",實際上 Keyboard 記錄的鍵可能分別是:

(aqw)(njmb)(cdxf)(rtf)(okl)(uij)(dsef)

Virtual Keyboard 根據字典,把上面的一串字母所有可能組成的字給找出來,就得到 "android" 這個字了。

好了,那麼為什麼實體鍵盤做不到這個效果呢,原因是實體鍵盤每個按鍵只是對應一個 key code 而不是一個座標,例如你按 S 鍵,系統就只會得到 S 一個 key code,系統本身並不可能知道附近還有Q,W,A,E,D,Z,X等等的按鍵。而不同的 Android 手機的實體鍵盤的位置各有不同,因此也不可能預設 Q 鍵就一定是在 S 附近。例如下面兩種實體鍵盤:

對 Milestone 來說 D 鍵附近是 W,E,R,S,F,Z,X,C
對 G1 來說 D 鍵附近是 E,R,S,F,X,C

如果要為實體鍵盤加上 auto correction 不是不可能,只是
1. 每種不同的手機可能要分別自行設定各個按鍵附近的鍵
2. auto correction 的效果可能沒有 Virtual Keyboard 那麼好

因此 Android 內建的 Keyboard 選擇了放棄實體鍵盤的 auto correction。

Sunday, April 11, 2010

CedIME 基本功能一覽



English auto-correction: 這個功能實在是非常重要。簡單來說,即使你的字母全打錯了,只要大約按到目標字母附近,也應該能夠成功打出你想打的字, 例:


當然,一些常用而中間有 ' 號的字也不用自己打:
遇到字典裡沒有的字怎辦?不用怕,可以把新字存下來 ,只要長按 Candidate List 裡第一個字就可以了。

新字會被存入 Android 的 User Dictionary 裡,下次再輸入時就會出現在 Candidate List,想刪除新字也很簡單,只要到 Settings -> Language & Keyboard -> User Dictionary 裡把字刪除就可以了。



句尾連續按兩下 space 會自動填上 fullstop

中文方面,現支援倉頡,速成,筆劃和注音,而且不用打完所有字根就可以從 Candidate List 裡選字:
也有聯想字功能:

如果聯想字庫裡沒有的字呢?這裡有一個和 HTC Keyboard 類似的功能,就是會存下所有你輸入過的兩字詞,例如我輸入一次:”世界正美麗”,則”世界”,”界正”,”正美”,”美麗”都會被存下來,然後所有這些詞都會被放到聯想字 Candidate List 裡,你下次再輸入同樣的句子就可以快很多:

以上這個功能要留意的是,和英文不同,這些存下的中文詞只是暫時性的,如果你轉換了其他 Keyboard 或者重啓你的 Android,這些暫存的詞就會消失。
從 v1.0.5 開始,中文詞也會被永久存下來。

當然還有其他基本功能包括符號 Keyboard,電話 Keyboard,Landscape Mode Keyboard等等:


還有一些其他的小技巧:
長按句號會彈出一個小鍵盤輸入標點符號。(英中都有)
長按左下角的小鍵盤會進入設定畫面。
按兩下shift鍵或長按shift鍵等於 Caplocks。


基本上我記得的就是這些了,希望能夠幫到大家更方便地使用 Android,同時歡迎大家提出意見 =)

Update 29/4: 新增實體鍵盤支授(倉頡,速成)按 Alt+Space 切換中英模式

計劃中的其他功能:
速成輸入法,注音/ 拼音輸入法,其他小改動,等等。

Saturday, April 10, 2010

CedIME 1.0 發佈到 Android Market

終於將過去一個月的努力成果發佈上 Android Market。

其實本來一直用開 HTC Magic,也有寫其他的app,但是沒有想過寫中文 Keyboard,因為老實說 HTC做的 Keyboard 真的很不錯,要比 android 本身的好。直到一個月前轉用了 Nexus One,找來找去都找不到合心意的中文 Keyboard,總是不及 HTC 的好用,於是把心一橫,用了一個月時間自己寫了一個出來了。雖然還不算完美,但至少HTC Keyboard上我覺得不錯的功能都有了,例如英文的 auto correction, auto completion,以及儲存用戶定義的字。中文方面我個人主要用倉頡或筆劃,所以先把這兩個輸入法加進去(將來還會加其他的,如果有人需要的話),同時也有聯想字和儲存中文詞的功能 (這個功能和英文的不太一樣,如果用過 Magic或 Hero的人應該會了解)。

明天再寫個比較完整的 feature list 供大家參考。