2009-02-04

Android 実験版 IME

http://www.youtube.com/watch?v=T93Py8bco_o

てな感じで。どうでしょうか。


http://code.google.com/p/android-migemo-ime/

adb install -r SoftKeyboard.apk

でインストールできるはずです。cupcakeで入ったInputMethodの仕組みを使ってますんで当然ながらcupcake以降用です。


仕組み

cupcakeのsoftware keyboardは、development/samples/SoftKeyboard のようで。

入力文字列を元に候補を表示して選択、なんていう機能が最初から実装されてました。CandidateViewとか。

ので、入力されたアルファベット文字列から日本語候補を作れば、とりあえずIMEとして使えるようになります。

JNIでnativeのlibraryでも呼ぼうかと思いましたが、ふとmigemoを思い出したところ、Java実装を見つけました(J/Migemo)。

入力文字列を喰わせて、返ってきた文字列候補をCandidateViewに入れてみた次第。動いてます。




res/rawからのリソース読み込み。1MBくらいしか読めないようで。元のmigemo-dictはもっと大きいので、とりあえず「お」の後でぶったぎってあります。ということで、「か」以降は変換できませんので注意 :-) (ひらがな、カタカナにはなります)

分割したり、逐次読み込みとか、いくらでも工夫のしがいはありますけども。




Java版POBox移植するのがいいかも。