1. android輸入法開發,最開始編寫的時候必須要寫的有什麼內容
參考開源的輸入法程序:
這個是個日語輸入法
初步學習:-1個月
1.去電驢上下一份mars的視頻。先淺淺的了解下android應用開發、整體架構和思路。mars的視頻做的挺不錯。
2.在eclipse中導入api demos。在手機/模擬器上運行apidemos,裡面的實例非常棒。可以把例子中涉及到項目的地方標注下,然後著重看看這部分的代碼.
逐漸深入:-3個月
1.有選擇的閱讀android api中的Dev Guide部分。
2.閱讀android中的resources部分。
上面的文章比較多,也不需要全部閱讀。只是在做過初步工作後,有選擇性的著重看一些相關內容。相關內容應該不僅僅包括項目直接相關的,還包括一些平台基礎知識。這些東西應如何選擇是在初步學習階段中應該明確的。
3.有空上上android相關比較好的社區,看看高手總結。如eoe、bus之類的。
准備階段:-3個月
閱讀開源的項目。
樓下有的朋友也提了一些建議。我覺得都挺好的,到了這個時候就該開始閱讀源碼進行學習了。
這里的關鍵在於慢慢扣源碼,先找容易看到的類。看著注釋慢慢理解,碰到不熟悉的類就查android的api。
閱讀是個長期的過程,然後必須要產生一些成果:
a.與輸入法相關的關鍵介面有哪些?關鍵類有哪些,職責是什麼?
b.輸入法的架構是怎樣的?組件之間如何交互?
c.數據從哪裡來?如何進行組織?
3.開發階段:
迭代開發。從最小的原型開始做起。
最小原型包括:最基本的輸入法功能,輸入字母,確定輸入,顯示字典,選擇完成輸入。最基礎的測試數據。
在完善輸入法基本功能上迭代開發。包括聯想輸入,更智能的分詞,以及符號和手寫識別等。還有ui美化等等。
既然你這邊有學c的同學,那麼在一些關鍵瓶頸方面。也可以使用NDK做後續優化。
2. android 通過代碼動態切換輸入法
這個可以通過將輸入法的ID寫入系統設置中來完成,大概代碼是這樣的:
Settings.Secure.putString(mContext.getContentResolver()
,Settings.Secure.DEFAULT_INPUT_METHOD,"輸入法的ID");
InputManagerService會監聽這個設置項的改變。
3. 安卓手機的輸入法設置 如何切換手機輸入法
若使用的是vivo手機,可進入設置--系統管理/更多設置--輸入法--默認輸入法--切換至您想要設置的輸入法即可;也可長按文本輸入區域,點擊切換圖標(輸入法)後選擇自己想要的輸入法。
4. android如何調用顯示和隱藏系統默認的輸入法(
1.讓EditText失去焦點,使用EditText的clearFocus方法
2. 強制隱藏Android輸入法窗口,在IME類中我們通過
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 實例化輸入法控制對象,通過hideSoftInputFromWindow來控制,其中第一個參數綁定的為需要隱藏輸入法的EditText對象,比如imm.hideSoftInputFromWindow(etAndroid123.getWindowToken(), 0);
5. 編寫一種android平台上的 輸入法
參考開源的輸入法程序:
http://code.google.com/p/aedict/
這個是個日語輸入法
初步學習:-1個月
1.去電驢上下一份mars的視頻。先淺淺的了解下android應用開發、整體架構和思路。mars的視頻做的挺不錯。
2.在eclipse中導入api demos。在手機/模擬器上運行apidemos,裡面的實例非常棒。可以把例子中涉及到項目的地方標注下,然後著重看看這部分的代碼.
逐漸深入:-3個月
1.有選擇的閱讀android api中的Dev Guide部分。
2.閱讀android中的resources部分。
上面的文章比較多,也不需要全部閱讀。只是在做過初步工作後,有選擇性的著重看一些相關內容。相關內容應該不僅僅包括項目直接相關的,還包括一些平台基礎知識。這些東西應如何選擇是在初步學習階段中應該明確的。
3.有空上上android相關比較好的社區,看看高手總結。如eoe、bus之類的。
准備階段:-3個月
閱讀開源的項目。
樓下有的朋友也提了一些建議。我覺得都挺好的,到了這個時候就該開始閱讀源碼進行學習了。
這里的關鍵在於慢慢扣源碼,先找容易看到的類。看著注釋慢慢理解,碰到不熟悉的類就查android的api。
閱讀是個長期的過程,然後必須要產生一些成果:
a.與輸入法相關的關鍵介面有哪些?關鍵類有哪些,職責是什麼?
b.輸入法的架構是怎樣的?組件之間如何交互?
c.數據從哪裡來?如何進行組織?
3.開發階段:
迭代開發。從最小的原型開始做起。
最小原型包括:最基本的輸入法功能,輸入字母,確定輸入,顯示字典,選擇完成輸入。最基礎的測試數據。
在完善輸入法基本功能上迭代開發。包括聯想輸入,更智能的分詞,以及符號和手寫識別等。還有ui美化等等。
既然你這邊有學c的同學,那麼在一些關鍵瓶頸方面。也可以使用NDK做後續優化。
6. 如何實現android應用輸入法的下一項功能
一、結構
public final class InputMethodManager extends Object
java.lang.Object
android.view.inputmethod.InputMethodManager
二、類概述
整個輸入法框架(IMF)結構的核心API,應用程序之間進行調度和當前輸入法交互。你可以用Context.getSystemService()取得這一介面的實例。
架構總述(Architecture Overview)
輸入法框架(IMF)共有三個主要部分:
* 輸入法管理器,管理各部分的交互。它是一個客戶端API,存在於各個應用程序的context中,用來溝通管理所有進程間交互的全局系統服務。
* 輸入法(IME) ,實現一個允許用戶生成文本的獨立交互模塊。系統綁定一個當前的輸入法。使其創建和生成,決定輸入法何時隱藏或者顯示它的UI。同一時間只能有一個IME運行。
* 客戶應用程序,通過輸入法管理器控制輸入焦點和IME的狀態。一次只能有一個客戶端使用IME。
應用程序(Applications)
大多數情況下,使用標准TextView或其子類的應用程序只要做少量工作就可以讓軟鍵盤(soft input methods)正常工作。你要注意的是:
* 正確設置你的可編輯文本視圖inputType,這樣輸入法有足夠的上下文幫助用戶向其輸入文本。
* 當輸入法顯示時妥善處理隱藏屏幕空間。理想的情況下應用程序應處理窗口變小,如必要你可以利用系統執行平移窗口。你應在活動(activity)中設置windowSoftInputMode屬性或調整創建窗口的相應值,以便系統決定平移或縮放(它會嘗試自動調整但可能出錯)。
* 你還可以通過相同的windowSoftInputMode控制窗口的首選軟鍵盤狀態(打開、關閉等)。
通過API可以與IMF及其IME交互實現更細致的控制,如顯示或輸入區域,用戶選取某輸入法等。
當你編寫自己的文本編輯器的時候,你要實現onCreateInputConnection(EditorInfo)以返回你的InputConnection的介面實例,用來允許IME和你的文本編輯域來交互。
輸入法(Input Methods)
一個輸入法(IME)是Service(服務)的實現,通常繼承自 InputMethodService。IME提供核心的 InputMethod介面,盡管提供InputMethod通常是由InputMethodService來處理,而IME的實現只需要處理更高層的API。
更多信息參閱InputMethodService。
安全(Security)
輸入法關繫到許多安全問題,因其基本不受約束地驅動UI並監視用戶輸入。Android輸入法框架還允許調度第三方IME,所必須小心以限制他們的選擇和相互作用。
以下是IMF背後安全架構的要點:
* 只允許系統訪問經BIND_INPUT_METHOD許可權許可訪問IME的InputMethod介面。通過綁定到要求這個許可權的服務來強制實現這一點。所以系統可以保證沒有不被信任的客戶端在它的控制之外訪問到當前的輸入法。
* IMF中可能有許多客戶進程,但在同一時間只有一個是激活的。未激活客戶端不能與IMF核心交互通過下述機制實現。
* 輸入法客戶端只可訪問InputMethodSession介面。每個客戶端創建一個介面實例,只有與激活客戶相關聯的會話的調用才會被IME處理。這點通過普通IME的 AbstractInputMethodService執行,必須由IME顯式的處理,而IME正是InputMethodSession的自定義實現。
* 只有激活的InputConnection接受操作。IMF通知每個客戶進程是否激活,IMF忽略非激活進程對當前輸入聯接的調用。這確保了當前IME只將事件和文本編輯交付用戶可見焦點的UI。
* 一個IME永遠不能在屏幕關閉時與 InputConnection交互。這是通過當屏幕關閉時所有客戶端無效,並防止不良IME在用戶無法關注其行為時驅動UI。
* 客戶應用程序可以要求系統選取一個新的IME,但不能編程式選擇之一。這是避免惡意程序在用戶導航到其它應用程序時,選擇自己的IME並保持運行。也就是說,IME可以編程式的要求系統選擇其它IME,因它完全控制了用戶輸入。
用戶在可切換至一個新的IME前必須顯式的啟用它,以確認系統了解它,使其處於可用狀態。
7. android輸入法是怎樣調用的
Android軟鍵盤強制彈出及隱藏輸入法的方法:
很多應用中對於一個界面比如進入搜索界面或者修改信息等等情況,為了用戶體驗應該自動彈出軟鍵盤而不是讓用戶主動點擊輸入框才彈出(因為用戶進入該界面必然是為了更改信息)。具體實現這種效果的代碼如下:
java代碼
EditText editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();
InputMethodManager inputManager =
(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
首先要對指定的輸入框請求焦點。然後調用輸入管理器彈出軟鍵盤。
警告:對於剛跳到一個新的界面就要彈出軟鍵盤的情況上述代碼可能由於界面為載入完全而無法彈出軟鍵盤。此時應該適當的延遲彈出軟鍵盤如998毫秒(保證界面的數據載入完成)。實例代碼如下:
java代碼:
Timer timer = new Timer();
timer.schele(new TimerTask()
{
public void run()
{
InputMethodManager inputManager =
(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
},
998);
8. android輸入法
可以設置adjustResize 或者 adjustPan
9. android輸入法開發
c楱摺c楱摺x栓u┝lc楱摺rèpぁvjⅠ法23450432042011-09-15 7:13:50r莬ンr莬ンwそd勝Ξmwそlゃylゃn瞌} 我知道一個很強大的作者,他們做過很多優秀的輸入法。直接聯系他們:摳摳:壹貳零肆柒柒貳叄玖