一区二区三区高清aⅴ专区,台湾中文娱乐网,亚洲第一网站

android輸入法app開發(fā)(安卓手機(jī)添加輸入法)

小程序開發(fā) 4335
今天給各位分享android輸入法app開發(fā)的知識,其中也會對安卓手機(jī)添加輸入法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!輸入法app怎么做 開發(fā)一個輸入法,只需要用到一個核心類和幾個可有可無的輔助類。核心類是InputMethodService,一個輸入法幾乎所有的功能都是由它來實(shí)現(xiàn)的,包括鍵盤界面的搭建、鍵盤語言的切換、拼音漢字的轉(zhuǎn)換、候選詞的展示、文字的上屏等各種邏輯都通過這個類來實(shí)現(xiàn)。InputMethodService類有如下幾個主要方法來管理輸入法服務(wù)的生命周期:

今天給各位分享android輸入法app開發(fā)的知識,其中也會對安卓手機(jī)添加輸入法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!

輸入法app怎么做

開發(fā)一個輸入法,只需要用到一個核心類和幾個可有可無的輔助類。

核心類是InputMethodService,一個輸入法幾乎所有的功能都是由它來實(shí)現(xiàn)的,包括鍵盤界面的搭建、鍵盤語言的切換、拼音漢字的轉(zhuǎn)換、候選詞的展示、文字的上屏等各種邏輯都通過這個類來實(shí)現(xiàn)。InputMethodService類有如下幾個主要方法來管理輸入法服務(wù)的生命周期:

·onCreate():輸入法開始創(chuàng)建,內(nèi)部已經(jīng)實(shí)現(xiàn)

設(shè)置theme、創(chuàng)建window、填充 rootview、設(shè)置布局方式等,我們也可以在此處

做一些初始化操作,但一定不要忘了調(diào)用supper.onCreate () ;

·onCreatelnputView():返回一個 view 作為

輸入法的鍵盤布局,通常這個view是由KeyboardView 和 Keyboard兩個輔助類生成,當(dāng)然也完全可以自定義。切換一次輸入法只會調(diào)用APP內(nèi)打開

·onCreateCandidatesView():返回一個view

來展示候選詞,這個view可有可無,會覆蓋到應(yīng)用上方,一般用半透明的背景,但市面上的輸入法一般都用來顯示拼音部分,而把候選詞放入InputView.同樣切換一次輸入法只會調(diào)用一次;

·onStartlnputView(Editorlnfo):開始輸入的

時候調(diào)用,每次喚起鍵盤或切換EditText都會調(diào)用,并把EditText的Editorlnfo傳過來,輸入法要根據(jù) Editorlnfo的信息判斷中英文、數(shù)字、回車鍵類型等,來展示不同的鍵盤,也就是動態(tài)切換 InputView的布局;

·onFinishlnput():輸入結(jié)束的時候調(diào)用,此

時可以做一些reset操作,比如隱藏CandidatesView,恢復(fù)InputView為默認(rèn)布局等;APP內(nèi)打開

·onDestroy():一般在切換其他輸入法的時候

android輸入法開發(fā),最開始編寫的時候必須要寫的有什么內(nèi)容

參考開源的輸入法程序:

這個是個日語輸入法

初步學(xué)習(xí):-1個月

1.去電驢上下一份mars的視頻。先淺淺的了解下android應(yīng)用開發(fā)、整體架構(gòu)和思路。mars的視頻做的挺不錯。

2.在eclipse中導(dǎo)入api demos。在手機(jī)/模擬器上運(yùn)行apidemos,里面的實(shí)例非常棒??梢园牙又猩婕暗巾椖康牡胤綐?biāo)注下,然后著重看看這部分的代碼.

逐漸深入:-3個月

1.有選擇的閱讀android api中的Dev Guide部分。

2.閱讀android中的resources部分。

上面的文章比較多,也不需要全部閱讀。只是在做過初步工作后,有選擇性的著重看一些相關(guān)內(nèi)容。相關(guān)內(nèi)容應(yīng)該不僅僅包括項目直接相關(guān)的,還包括一些平臺基礎(chǔ)知識。這些東西應(yīng)如何選擇是在初步學(xué)習(xí)階段中應(yīng)該明確的。

3.有空上上android相關(guān)比較好的社區(qū),看看高手總結(jié)。如eoe、bus之類的。

準(zhǔn)備階段:-3個月

閱讀開源的項目。

樓下有的朋友也提了一些建議。我覺得都挺好的,到了這個時候就該開始閱讀源碼進(jìn)行學(xué)習(xí)了。

這里的關(guān)鍵在于慢慢扣源碼,先找容易看到的類。看著注釋慢慢理解,碰到不熟悉的類就查android的api。

閱讀是個長期的過程,然后必須要產(chǎn)生一些成果:

a.與輸入法相關(guān)的關(guān)鍵接口有哪些?關(guān)鍵類有哪些,職責(zé)是什么?

b.輸入法的架構(gòu)是怎樣的?組件之間如何交互?

c.數(shù)據(jù)從哪里來?如何進(jìn)行組織?

3.開發(fā)階段:

迭代開發(fā)。從最小的原型開始做起。

最小原型包括:最基本的輸入法功能,輸入字母,確定輸入,顯示字典,選擇完成輸入。最基礎(chǔ)的測試數(shù)據(jù)。

在完善輸入法基本功能上迭代開發(fā)。包括聯(lián)想輸入,更智能的分詞,以及符號和手寫識別等。還有ui美化等等。

既然你這邊有學(xué)c的同學(xué),那么在一些關(guān)鍵瓶頸方面。也可以使用NDK做后續(xù)優(yōu)化。

如何在應(yīng)用開發(fā)android中添加中文輸入法

首先你要在手機(jī)上裝有中文輸入法。

如果是程序調(diào)用指定的中文輸入法就用InputMethodManager.setInputMethod (IBinder token, String id),函數(shù)可以在sdk中看相關(guān)說明。

如果是手機(jī)上設(shè)置默認(rèn)的話,設(shè)置-語言和輸入法-默認(rèn)- 然后在彈出框中選擇你想要的輸入法。

android ui怎么開發(fā)出搜狗輸入法的程序

 一、結(jié)構(gòu)

public final class InputMethodManager extends Object

Java.lang.Object

android.view.inputmethod.InputMethodManager

二、類概述

整個輸入法框架(IMF)結(jié)構(gòu)的核心API,應(yīng)用程序之間進(jìn)行調(diào)度和當(dāng)前輸入法交互。你可以用Context.getSystemService()取得這一接口的實(shí)例。

架構(gòu)總述(Architecture Overview)

輸入法框架(IMF)共有三個主要部分:

* 輸入法管理器,管理各部分的交互。它是一個客戶端API,存在于各個應(yīng)用程序的context中,用來溝通管理所有進(jìn)程間交互的全局系統(tǒng)服務(wù)。

* 輸入法(IME) ,實(shí)現(xiàn)一個允許用戶生成文本的獨(dú)立交互模塊。系統(tǒng)綁定一個當(dāng)前的輸入法。使其創(chuàng)建和生成,決定輸入法何時隱藏或者顯示它的UI。同一時間只能有一個IME運(yùn)行。

* 客戶應(yīng)用程序,通過輸入法管理器控制輸入焦點(diǎn)和IME的狀態(tài)。一次只能有一個客戶端使用IME。

應(yīng)用程序(Applications)

大多數(shù)情況下,使用標(biāo)準(zhǔn)TextView或其子類的應(yīng)用程序只要做少量工作就可以讓軟鍵盤(soft input methods)正常工作。你要注意的是:

* 正確設(shè)置你的可編輯文本視圖inputType,這樣輸入法有足夠的上下文幫助用戶向其輸入文本。

* 當(dāng)輸入法顯示時妥善處理隱藏屏幕空間。理想的情況下應(yīng)用程序應(yīng)處理窗口變小,如必要你可以利用系統(tǒng)執(zhí)行平移窗口。你應(yīng)在活動(activity)中設(shè)置windowSoftInputMode屬性或調(diào)整創(chuàng)建窗口的相應(yīng)值,以便系統(tǒng)決定平移或縮放(它會嘗試自動調(diào)整但可能出錯)。

* 你還可以通過相同的windowSoftInputMode控制窗口的首選軟鍵盤狀態(tài)(打開、關(guān)閉等)。

通過API可以與IMF及其IME交互實(shí)現(xiàn)更細(xì)致的控制,如顯示或輸入?yún)^(qū)域,用戶選取某輸入法等。

當(dāng)你編寫自己的文本編輯器的時候,你要實(shí)現(xiàn)onCreateInputConnection(EditorInfo)以返回你的InputConnection的接口實(shí)例,用來允許IME和你的文本編輯域來交互。

輸入法(Input Methods)

一個輸入法(IME)是Service(服務(wù))的實(shí)現(xiàn),通常繼承自 InputMethodService。IME提供核心的 InputMethod接口,盡管提供InputMethod通常是由InputMethodService來處理,而IME的實(shí)現(xiàn)只需要處理更高層的API。

更多信息參閱InputMethodService。

安全(Security)

輸入法關(guān)系到許多安全問題,因其基本不受約束地驅(qū)動UI并監(jiān)視用戶輸入。Android輸入法框架還允許調(diào)度第三方IME,所必須小心以限制他們的選擇和相互作用。

以下是IMF背后安全架構(gòu)的要點(diǎn):

* 只允許系統(tǒng)訪問經(jīng)BIND_INPUT_METHOD權(quán)限許可訪問IME的InputMethod接口。通過綁定到要求這個權(quán)限的服務(wù)來強(qiáng)制實(shí)現(xiàn)這一點(diǎn)。所以系統(tǒng)可以保證沒有不被信任的客戶端在它的控制之外訪問到當(dāng)前的輸入法。

* IMF中可能有許多客戶進(jìn)程,但在同一時間只有一個是激活的。未激活客戶端不能與IMF核心交互通過下述機(jī)制實(shí)現(xiàn)。

* 輸入法客戶端只可訪問InputMethodSession接口。每個客戶端創(chuàng)建一個接口實(shí)例,只有與激活客戶相關(guān)聯(lián)的會話的調(diào)用才會被IME處理。這點(diǎn)通過普通IME的 AbstractInputMethodService執(zhí)行,必須由IME顯式的處理,而IME正是InputMethodSession的自定義實(shí)現(xiàn)。

* 只有激活的InputConnection接受操作。IMF通知每個客戶進(jìn)程是否激活,IMF忽略非激活進(jìn)程對當(dāng)前輸入聯(lián)接的調(diào)用。這確保了當(dāng)前IME只將事件和文本編輯交付用戶可見焦點(diǎn)的UI。

* 一個IME永遠(yuǎn)不能在屏幕關(guān)閉時與 InputConnection交互。這是通過當(dāng)屏幕關(guān)閉時所有客戶端無效,并防止不良IME在用戶無法關(guān)注其行為時驅(qū)動UI。

* 客戶應(yīng)用程序可以要求系統(tǒng)選取一個新的IME,但不能編程式選擇之一。這是避免惡意程序在用戶導(dǎo)航到其它應(yīng)用程序時,選擇自己的IME并保持運(yùn)行。也就是說,IME可以編程式的要求系統(tǒng)選擇其它IME,因它完全控制了用戶輸入。

用戶在可切換至一個新的IME前必須顯式的啟用它,以確認(rèn)系統(tǒng)了解它,使其處于可用狀態(tài)。

關(guān)于android輸入法app開發(fā)和安卓手機(jī)添加輸入法的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃碼二維碼