2011.2.19 新版本4.3版發佈了,有關流行注音輸入法的介紹可以訪問此貼:
http://www.mobile01.com/topicdetail.php?f=224&t=1954180&p=8#25359086
1、修正了一些注音錯誤的字,如欄、盧、舺、蓋等。
2、修正一些bug
2011.2.9 4.23版
1、增加實現了輸入窗口的關閉按鍵和候選窗口的翻頁鍵可以配置寬度的參數,。
2、完善了狀態功能,支持兩行按鍵以上的狀態條,可以增加與ctrol配合使用的按鍵
3、重新將點擊聯字關閉聯想候選詞的功能。
4、增加了在輸入的注音串轉成漢字後,鍵盤變成候選詞選擇區功能,方便快速輸入生僻單字。
流行注音輸入法自在論壇發佈後,
用戶反應很好用,但也提出了很多個性化的需求。
例如需要修改鍵大小,調整過按鍵的佈局等等,
其實流行注音輸入法在系統設計上非常開放,用戶完全可以通過自己動手,打造屬於自己的個性化輸入法。
本貼就是教會有需要自定義鍵盤的用戶如何進行通過整理輸入的系統配置參數,實現自己的個性化需求。
課程目錄:
1.基本知識
1.1工具篇-介紹需要掌握什麼工具才能個性化設計
1.2原理操作步驟
2.實踐-按鍵佈局
2.1鍵盤面板(鍵盤底座)的設計
2.2如何將各個按鍵安裝在鍵盤底座上(設置各按鍵在鍵盤面板上座標)
2.3如何調換鍵的位置或調整鍵的大小
3.實踐-字體與顏色
4.實踐-高級功能設置
最新版本软件下载:
附加壓縮檔: 201102/mobile01-56a39e34d8f894f2d5088499f6b335ae.zip
1.2原理及操作步驟
流行注音輸入法內置了6個輸入鍵盤面板,4個豎向面板,1個橫向面板和一個狀態條面板。
輸入法提供了非常方便的面板間的切換功能。可以通過菜單的皮膚功能進行切換,也可以快速向上或向右劃動菜單鍵進行切換。
這些面板(鍵盤底座)是一個點陣圖檔(.bmp),該文件存放在手機的\Program Files\LXLMSip\文件夾下,檔案名為lhlkeyboad*.bmp,依次爲:
lhlkeyboad.bmp(默認面板),
lhlkeyboad1-3.bmp(面板1-3),
lhlkeyboadw.bmp(橫面板)
lhlkeyboad_st.bmp(狀態條面板)
如下圖所示:

如果用戶要修改按鍵的大小或位置,可以用畫筆工具打開相應的面板文件進行修改。修改後,將其更新下文件
上述的bmp文件只定義了面板的背景圖片,還要在定義每個鍵盤在這個面板圖片上的對應位置。
即如何將按鍵放在鍵盤座上的問題。
這需要設置相應的鍵盤佈局檔,鍵盤佈局檔為\Program Files\LXLMSip\lhlkeyboard.txt,只要用記事本打開這個檔案,在裏面進行按鍵參數的修改後,重新更新該文件,然後通過長按一下菜單鍵,進行一次狀態條的切換,新修改的參數就會生效。
鍵盤佈局檔同樣提供了相應的6個面板的配置項參數設置。
[kb0]-默認面板佈局
[kb1]、[kb2]、[kb3] 1-3面板佈局
[kbw] 橫向面板佈局
[kb_state]狀態條面板佈局

一般來說重頭開展製作或修改面板的步驟如下:
1鍵盤面板的製作
選擇自己喜歡的面板圖片作為面板背景。本輸入法默認的面板圖片的大小為240×160象素。(用戶也可以由定義圖片的大小,輸入會自動適應。由於輸入的鍵盤面板可以自定義縮放比例。可能圖片存在失真,所以如果定義的鍵盤面板大小不是標準,需要用戶自己測試實際效果)我們建議對於一般手機爲160×240,高畫素手機,面板畫素大小爲320×480.
2.調整鍵盤佈局
修改鍵盤面板配置檔:\Program Files\LXLMSip\lhlkeyboad.txt。調整裏面的各個參數,包括字體設置,字體顏色、放大比例、面板的行數,每行的按鍵數,各個鍵的座標,鍵值等等,這些修改可以在pc上操作。
3.修改完後,將檔放回到\Program Files\LXLMSip\目錄下
4.切換一下皮膚。例如在輸入的菜單-皮膚設置-選擇某個皮膚,輸入法就會自動讀取鍵盤面板配置檔資訊,產生新的自定義鍵盤面板
2.2如何將各個按鍵安裝在鍵盤底座上(設置各按鍵在鍵盤面板上座標)
以默認鍵盤面板爲例進行說明
打開文件\Program Files\LXLMSip\lhlkeyboad.txt
通過查找功能找到配置項[kb0],該項就是默認面板的配置
對於鍵盤佈局來說在該配置項下有兩項重要的配置,向下移到方向鍵就會找到
一是配置鍵盤面板的每行按鍵高度,由rowheigth參數進行設置,如下所示
#面板各行高度座標,兩個座標之差就是行高.座標最大值為80,輸入法會根據面板放大比例進行自動
rowheigth=0,16,33,50,67,80
意思是整個鍵盤面板的高度爲80個邏輯單位,每相鄰兩個數字之間表示其中的一行,垂直起止座標就是這兩個數字,
每一行的高度是這兩個數字之間的差。例如0,16表示第一行鍵盤的高度座標是由0至16,高度爲16個邏輯單位。
每行的高度一般可以平均分配,例如如果設計是5行鍵盤,則每行的高度爲16,如果4行,則每行高度爲20(其中一行爲0)。
另一個配置在鍵盤面板的什麼位置放在什麼鍵,一般的參數形如row0-keya,如下所示
##按鍵定義
#第0行
#輸入字元 shift鍵按下字元 虛擬鍵標誌(1=虛擬鍵,3=虛擬鍵且可以保持按下,11=虛擬鍵且可以保持按#下且鍵盤進行切換 33=虛擬鍵且能輸出shift按下時的字元) x左座標 顯示名
row0-keya=81 q @ 0 0
row0-keya的意思是第0行(row0由0開始編碼,相當於第一行,所以如果有5行,則按row0-row4進行編號),第一個按鍵(keya,如果是第二個按鍵則是keyb,以此類推)
=81 q @ 0 0 依次的意思定義按鍵是個什麼樣的鍵(鍵值 81)、
按下正面面板時輸入什麼符號(q),
切換到反面時(例如按下shift)輸入什麼符號(@),
是一般的符號鍵還是功能鍵(例如0爲符號鍵,1爲功能鍵,功能是鍵是找刪除鍵、方向鍵、enter、空格鍵、菜單鍵等),
在鍵盤面板上的起始橫座標是什麼(縱座標不需要定義,因爲上面rowheigth參數已定義了每行的高度座標了)。橫座標的範圍爲(0-240,0是屏幕最左邊,240爲最右邊)
81 是該鍵的虛擬鍵值,一般來說每個鍵都有一個固定的鍵值,具體每個鍵例如a,b,c,的鍵值可以參見配置項[自定義面板參數大全],
該大全已基本上將所有按鍵的鍵值都列出來了。
鍵值一般用於判斷用戶是否按下了功能鍵。如果按鍵不是功能鍵,該值的作用不大,因爲按下該鍵時,
是按照後面定義的符號進行輸入。所以符號鍵一定要配置正確。
要在第0行放在其他鍵,只要按照上一的格式添加按照參數即可(必須要嚴格按照abcd順序進行編號,中間不能斷開)
row0-keyb=87 w # 0 24
......
放完該行所有按鍵後,最後必須要有一個結束鍵
row0-keyk=35 0 0 1 240 #結束鍵,沒有意思,結束鍵的起始橫座標爲240,表示最右邊
然後其他行也按照此格式進行設置
##第1行
row1-keya=65 a % 0 0
row1-keyb=83 s * 0 26
........
2.3如何調換鍵的位置或調整鍵的大小
通過上面的學習,你大概應該瞭解了鍵盤面板佈局的原理和操作方法了。
看完上面的說明後,可能你會覺得,要由頭到尾設計一個完整的面板也不是件容易的事
需要很細緻,很細心,花費不少時間才能黨成。
可能你會提出,我不需要重新設計面板,我只需要對現有的面板做一些個性化的微調工作就可以很好滿足我的要求。
那就好了,下面簡單介紹一個常用的例子
一個是按鍵位置互換
假如兩個都是非功能按鍵(例如,。或a b c等),按鍵大小不變,只是互換位置,不需要修改背景圖片。
你只需要打開上面提到的鍵盤配置文件,找到你需要調換的按鍵配置項。
修改按鍵配置的符號就可以了,例如將原來【,】號修改爲【。】,【。】修改爲【,】
另一個是調整按鍵大小
例如你覺得系統默認鍵盤面板的刪除鍵太小,空格鍵太大。你想縮小空格鍵,增加刪除鍵。
由於改爲了按鍵大小,所以第一步必須重新調整鍵盤面板的背景圖片,用畫筆軟體打開鍵盤面板背景圖片
例如默認面板是lhlkeyboad.bmp,將空格鍵縮小、刪除鍵增大。
完成第一步後,同樣打開上面提到的鍵盤配置文件,找到空格鍵和刪除鍵的配置參數,
假設空格鍵和刪除鍵相鄰,則只需要根據實際情況修改刪除鍵的起止橫座標的值,將其減少一下就可以了.
例如原來的這兩個鍵的配置如下:
#space
row4-keye=32 . . 1 86
#虛擬鍵backspace鍵 沒有字元
row4-keyf=8 0 0 1 137
只需要將137修改爲130就,就代表space鍵縮小7個單位,backspace鍵增加7個單位。
K A M wrote:
老師(舉手)我有問題...(恕刪)
老師(舉手)我有問題,
關於
row0-keya=81 q @ 0 0
是否無法達成正面放字原、背面放功能?
我要將上面這個編碼的正面放q、背面放左向鍵,
如果不能正面字元、背面方向的話,我就得要重新編排了...
解答:对,程式规定了功能键正反面都一样,没有正反面之分。
能否作3個鍵盤皮膚,讓它循環
(鍵盤3>鍵盤1>鍵盤2>鍵盤3>鍵盤1)
我想在系統列左方放入+1與-1的皮膚切換功能鍵,
直接達到一鍵切換任意鍵盤的功能
解答:如果设置三个皮肤,是可以的实现的。
只需要在每个皮肤中修改如下参数就可以了。
###面板關聯設置####
#鍵盤缺省輸入狀態,0:en,1:ch,2:en dict
default_inputMod=1
#是否自動跳轉到其他面板
IS_AUTOJUMP_KEYB=1
#CH鍵盤皮膚
CH_KEYBOAD_SKIN=0
#EN鍵盤皮膚
EN_KEYBOAD_SKIN=1
#數字鍵盤皮膚
NUM_KEYBOAD_SKIN=2
###面板關聯設置end####
有两个按键可以实现切换,将其改在面板上,按下该键后,就会按上面的设置切换到相应的面板。
一个中英切换键
#LWin 用作中英切換
row4-keyc=91 0 0 3 49
按下该键后,原来是英文的则切换到EN_KEYBOAD_SKIN 对应的面板,
如果原来是中文切换到CH_KEYBOAD_SKIN 对应的面板,
一个正反面板切换键(不是shift键,是VK_CAPslock键)
#VK_CAPITAL用作字元面板切換,虛擬+保持+切換=11
row4-keyb=20 0 0 11 21
按下该键时切换到NUM_KEYBOAD_SKIN 对应的面板。
lhl1 wrote:
有两个按键可以实现切换,将其改在面板上,按下该键后,就会按上面的设置切换到相应的面板。
一个中英切换键
#LWin 用作中英切換
row4-keyc=91 0 0 3 49
按下该键后,原来是英文的则切换到EN_KEYBOAD_SKIN 对应的面板,
如果原来是中文切换到CH_KEYBOAD_SKIN 对应的面板,
一个正反面板切换键(不是shift键,是VK_CAPslock键)
#VK_CAPITAL用作字元面板切換,虛擬+保持+切換=11
row4-keyb=20 0 0 11 21
按下该键时切换到NUM_KEYBOAD_SKIN 对应的面板。
可是這麼做的話,雖然能
中文一鍵切英文/數字
英文一鍵切中文/數字
但是數字一鍵只能切回上一個鍵盤,
例如我想打「中文123EN」這樣的一串字,
需要中文>數字>英文,這樣的切換方式,
但實際上只能中文>數字>中文>英文這樣切,
鍵盤切換鍵不能指定切1切2切3嗎?
像是
中文鍵盤(1)有英(2)/數(3)切換鍵
英文鍵盤(2)有中(1)/數(3)切換鍵
數字鍵盤(3)有中(1)/英(2)切換鍵嗎?
候選欄按下會跳下一頁候選字,但按上卻是回第一頁,不能讓它上一頁嗎?每次按過頭就要重按...
候選字欄位聯想字的「聯」字(能關閉候選欄位的那個)要如何出現?
候選字一頁有那麼多字,我閱讀起來反而比較慢,再少一、兩個字比較適合我
候選字欄位的左右鍵如何加大?
狀態列的上下鍵,我想用左右鍵取代,但沒有上下鍵的話,
候選字換頁切起來不太順暢,
「欄」字無法輸入
全形空格該如何實現?
謝謝
K A M wrote:
可是這麼做的話,雖然...(恕刪)
q:數字鍵盤(3)有中(1)/英(2)切換鍵嗎?
a:可以啊,你在數字鍵盤(3)放置两个键就可以了
一个中英切换键,点该键设换到中文(中1)
一个capslock键,点该键切换到英文键盘(英2)
在键盘3进行如下设置:
###面板關聯設置####
#鍵盤缺省輸入狀態,0:en,1:ch,2:en dict
default_inputMod=1 #如果数字键盘默认为英文状态可以设置0
#是否自動跳轉到其他面板
IS_AUTOJUMP_KEYB=1
#CH鍵盤皮膚
CH_KEYBOAD_SKIN=0 #切换到键盘1
#EN鍵盤皮膚
EN_KEYBOAD_SKIN=0 #切换到键盘1
#數字鍵盤皮膚
NUM_KEYBOAD_SKIN=1 #切换到键盘2
###面板關聯設置end####
以上的设置只要按下中英切换键,都转到键盘中1键盘
按下vk_capital键就切换到英2
內文搜尋

X