Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android的文本和輸入---創建輸入法

Android的文本和輸入---創建輸入法

編輯:關於Android編程

截取硬件的按鍵事件   即使輸入法窗口沒有明確的焦點,它也會首先接收到硬件的按鍵事件,並能夠選擇是使用還是把它們轉發給應用程序。例如,在文本編排期間,你可以使用方向鍵在輸入法UI的候選區進行導航。你也可以捕獲回退鍵來消除從輸入法窗口彈出的任何窗口。   重寫onKeyDown()和onKeyUp()方法來獲取硬件的按鍵事件。   對於不想自己處理的按鍵,要記住調用super()方法。   創建IME的子類型   子類型運行IME來展現多種輸入模式以及由IME所支持的語言。一個子類型可以表現為:   1. 一種語言環境,如en_US或fr_FR;   2. 一種輸入模式,如語音、鍵盤或手寫;   3. 其他的輸入樣式、格式、或特殊的IME屬性,如10個鍵或qwerty鍵盤的布局等。   基本上模式是任意文字,如“keyboard”、“voice”等等。   一個子類型也可以是這些類型的一個組合。   子類型信息被用於輸入法的切換,在通知欄和IME設置窗口中可以使用。這些信息也允許框架直接攜帶特定的IME子類型。當你創建一個IME時,可以方便的使用子類型,因為它會幫助用戶標識並完成不同IME語言和模式之間的切換。   使用<subtype>元素在輸入法的XML資源文件中定義一種子類型。下面的示例中定義了兩種子類型:一種是用於美國英語環境的鍵盤子類型,另一中是用於法語環境的鍵盤子類型:   <input-method xmlns:android="http://schemas.android.com/apk/res/android"           android:settingsActivity="com.example.softkeyboard.Settings"           android:icon="@drawable/ime_icon"       <subtype android:name="@string/display_name_english_keyboard_ime"               android:icon="@drawable/subtype_icon_english_keyboard_ime"               android:imeSubtypeLanguage="en_US"               android:imeSubtypeMode="keyboard"               android:imeSubtypeExtraValue="somePrivateOption=true"       />       <subtype android:name="@string/display_name_french_keyboard_ime"               android:icon="@drawable/subtype_icon_french_keyboard_ime"               android:imeSubtypeLanguage="fr_FR"               android:imeSubtypeMode="keyboard"               android:imeSubtypeExtraValue="foobar=30,someInternalOption=false"       />       <subtype android:name="@string/display_name_german_keyboard_ime"               ...       />   />   使用%s來獲得與子類型的語言標簽相同的子類型標簽,以便確保你的子類型在UI中被正確的標記。以下是輸入法的部分XML文件:       <subtype           android:label="@string/label_subtype_generic"           android:imeSubtypeLocale="en_US"           android:icon="@drawable/icon_en_us"           android:imeSubtypeMode="keyboard" />   以下是部分的IME的strings.xml文件。字符串資源label_subtype_generic被輸入法的UI用於設置子類型的標簽,定義如下:   <stringname="label_subtype_generic">%s</string>   這樣在任何英語的語言環境中,就會把子類型的顯示名稱設置為“English(United States)”,或者是其他對應的語言。      
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved