編輯:Android開發實例
輸入法編輯器(IME)是讓用戶輸入文本的控件。Android提供了一個可擴展的的輸入法的框架,它允許應用程序給用戶提供另外的輸入法,如軟鍵盤或語音輸入。這些輸入法一旦安裝,用戶就可以從系統的設置中選擇他們想要使用的IME,並且這個設置對整個系統都是有效的,每次只有一種輸入法是可用的。
要在Android系統中添加一種輸入法,你就要創建一個包含繼承了InputMethodService類的類應用程序。另外,你通常還要創建一個“settings”Activity,把選項傳遞給IME服務。你還可以定義一個用於設置的UI,讓它做為系統設置的一部分來顯示。
本文包含以下內容:
1. IME的生命周期。
2. 在應用程序的清單中聲明IME組件;
3. IME API
4. 設計IME的UI
5. 從IME中把文本發送給應用程序
6. 使用IME子類型
IME的生命周期
下圖介紹IME的生命周期:
圖1.IME的生命周期
下列章節介紹如何實現UI以及代碼如何跟這個生命周期相關聯。
在清單中生命IME組件
在Android系統中,IME是一個包含了特殊IME服務的Android應用程序。應用程序的清單文件必須聲明服務、申請必要的權限、提供跟action.view.InputMethod操作相匹配的Intent過濾器、以及定義IME的特性的元數據。另外,還要提供一個設置界面,允許用戶用它來編輯IME的行為,你可以定義一個從系統設置中能夠啟動的“settings”的Activity。
以下清單片段聲明了IME服務。它申請了允許把服務連接到系統的IME的BIND_INPUT_METHOD權限,建立了一個跟android.view.InputMethod操作相匹配的Intent過濾器,並且給IME定義了元數據:
代碼如下:
<!-- Declares the input method service -->
<service android:name="FastInputIME"
android:label="@string/fast_input_label"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method" />
</service>
接下來給IME聲明了用於設置的Activity。它有一個ACTION_MAIN類型的Intent過濾器,這指明了該Activity是IME應用程序的主入口:
代碼如下:
<!-- Optional: an activity for controlling the IME settings -->
<activity android:name="FastInputIMESettings"
android:label="@string/fast_input_settings">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
你還可以在這個設置的UI中提供對IME設置的直接訪問。
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
1.需求 無論是在.net還是java平台,合理的分層架構是最普遍的模塊化思路之一。 dl
通常來說,在進行Android項目開發的時候可以通過MediaRecorder和AudioRecord這兩個工具來實現錄音的功能,MediaRecorder直接把