AndroidSKK更新.
今回はだいぶいろいろ変えた.でかいのはフリック入力キーボードの幅とか左右位置を調整できるようにしたことかな.ほかにも,フリック入力の反応を微妙に改善したり,ハードウェアキーボードのときはSandSが使えるようになってたり,ちょっとした使い勝手がいろいろと向上している.
あ,ひとつ前に書いた,1.6でソフトウェアキーボードが出ない問題もちゃんと解決した.別に誰も得しないと思うけど.
しかしまあ,androidのIMEを作る方法についてはいまいち情報が少なくて,どうもよくわからんことが多い.StackOverflowでさえも回答がつかなくて放置されてる例がときどきある始末だ.
今回,EditText(というかEditable)で保持しているシフト状態をIME側から取得しようとあれこれ調べてみたけど,結局やりかたがわからなかった.これができれば,自前でメタキーの管理とかそんなにしなくてすむと思うんだけどなあ.なんでgetEditable()はInputConnectionインターフェースのメソッドに入ってないんだ?
あとKeyboardの高さは強引に変更する方法が見つかったのに,同じようにやっても幅はどういうわけか変更できない,というか変更するとうまく反応しなくなる.Keyboard#computeNearestNeighbors()を呼ばないとちゃんとサイズの変更に追随しないようなのだが,これがなぜかprivateなのである.というかなんで高さの場合はうまくいくのかもよくわからない.しょうがないので,今回は横幅の全パターンに対してレイアウトファイルを用意するという強引な解決をしてある.
IMEを作ってる人達はどこから情報を得てるんだろう? ひょっとして俺が阿呆なだけ?