新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Qtopia的嵌入式中文輸入法設(shè)計(jì)

基于Qtopia的嵌入式中文輸入法設(shè)計(jì)

作者: 時(shí)間:2010-07-20 來(lái)源:網(wǎng)絡(luò) 收藏
隨著ARM內(nèi)核芯片的大規(guī)模應(yīng)用,手持設(shè)備迎來(lái)了一個(gè)龐大的市場(chǎng)。與用戶直接打交道的圖形界面的友好程度決定了用戶對(duì)該產(chǎn)品的感觀認(rèn)識(shí)。在這個(gè)方興末艾的市場(chǎng),Linux由于其系統(tǒng)優(yōu)異的健壯性,以及開源、免費(fèi)等顯著優(yōu)勢(shì),成為設(shè)備的主流操作系統(tǒng)。其中,是TrolItech公司為采用嵌入式Linux操作系統(tǒng)的消費(fèi)電子設(shè)備而開發(fā)的綜合應(yīng)用平臺(tái),因其友好的界面、完善的開發(fā)環(huán)境,已被國(guó)內(nèi)移動(dòng)電話制造商中興通訊選作其移動(dòng)電話ZTEU980Linux的應(yīng)用開發(fā)框架,使電話版成為中興通訊支持中國(guó)3G標(biāo)準(zhǔn)TD-SCDMA的核心部件,在嵌入式市場(chǎng)的競(jìng)爭(zhēng)中撥得頭籌。
在Qtopia的應(yīng)用中,有許多需要用戶輸入本地文字的場(chǎng)合,如短信、通訊錄及記事本等,而Qtopia現(xiàn)有的輸入方式,是虛擬的QWER-TY全鍵盤的,在實(shí)際應(yīng)用中,這種QWERTY全鍵盤不僅需要用戶雙手進(jìn)行操作,而且由于按鍵排布緊密,從而導(dǎo)致誤碼率居高不下。
本文提出一種基于Qtopia的采用傳統(tǒng)九宮格方式的。傳統(tǒng)九宮格的虛擬鍵盤不僅符合大眾的使用習(xí)慣,而且可以實(shí)現(xiàn)單手操作,可以為用戶帶來(lái)舒適的輸入體驗(yàn),提高產(chǎn)品的市場(chǎng)占有率。

l Qtopia編碼及插件技術(shù)
要實(shí)現(xiàn)漢字在Qtopia系統(tǒng)里正確處理并顯示,必須滿足兩個(gè)前提條件:一是系統(tǒng)要有支持的編碼;另一個(gè)是要有能顯示這個(gè)中文編碼的字符字體存在。本文的Linux開發(fā)環(huán)境代碼編輯器的編碼為GBK,目標(biāo)機(jī)上的Qtopia平臺(tái)使用Unicode編碼,所以在程序里首先按如下的方式進(jìn)行編碼轉(zhuǎn)換:

接下來(lái)為Qtopia系統(tǒng)提供中文字體,Qtopia支持多種字體。包括ttf.bdf,qpf格式。其中qpf格式的字體使用最為方便,本文采用支持中文的Simsun_120_50.qpf字體文件,把該字體文件保存至MYMQTEDIR/lib/fonts目錄下,修改字體鏈接fontdir文件,在菜單Appearance的Font選項(xiàng)里選中該字體,此時(shí)系統(tǒng)中文顯示正常。
在Qtopm中,是以基于插件的方式實(shí)現(xiàn)的,Qtopia插件分為應(yīng)用程序插件、服務(wù)器插件和系統(tǒng)插件3種。其中,應(yīng)用程序插件是應(yīng)用程序使用的插件,服務(wù)器插件是在啟動(dòng)時(shí)由Qtopia服務(wù)器進(jìn)行裝載的插件,系統(tǒng)插件是在應(yīng)用程序啟動(dòng)時(shí)被裝載的插件。本文所涉及的屬于服務(wù)器插件。
Qtopia中通過(guò)類似COM的層來(lái)使用插件,建立一個(gè)插件的基本步驟為:創(chuàng)建插件的接口;寫插件將提供的功能函數(shù);為接口定義子類;創(chuàng)建一個(gè)插件實(shí)例;裝載插件。
在實(shí)現(xiàn)輸入法插件的創(chuàng)建后,需將該插件編譯成動(dòng)態(tài)鏈接庫(kù)的形式,并安裝到插件對(duì)應(yīng)的目錄下,對(duì)于輸入法插件而言。指定的存放目錄為$QTEDIR/plugins/inputmethods。系統(tǒng)啟動(dòng)時(shí),插件裝載器會(huì)自動(dòng)裝載這個(gè)文件夾里的輸入法插件。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉