入力方法に関する developer.android.comの例に従い、 SoftKeyboardサンプル アプリケーションで遊んでみました。これらを合わせると、単純なキーボードの作成に関する十分な情報が得られます。
API で確認できないのは、標準のキーボード (LatinIME キーボード) で使用できる、キーごとに代替/複数の文字を作成する機能です。
上の画像は、「a」キーを長押しした結果です。キーを長押しすると、ポップアップに代替文字を入力できます。
また、ポップアップ メニューを表示するためにキーを長押しするようユーザーに促す、いくつかのキーにポップアップ ヒントを与えることもできます。
これまでのところ、これがどのように達成されるかについての単一の情報源を見つけていません。うまくいけば、誰かが私に有利なスタートを切ることができるでしょう。それまでは、組み込みキーボードのソースコードをたどって、リバースエンジニアリングできるかどうかを確認しますそれ。
編集: developer.android.comの LatinIME キーボードへのリンクが羊の写真にリンクしていない場合に役立ちます:) LatinIME.javaの実際のソースコード。
編集 2:何よりも参考として、これはKeyboardView.javaでポップアップキーボードを表示するために通常の longPress アクションが実行されると私が信じているシーケンスです:
onTouchEvent()
onModifiedTouchEvent()
mHandkler.handleMessage() with MSG_LONGPRESS
openPopupIfRequired()
onLongPress()
編集3:
私はまだこれを理解していません - キーにラベルの提案を追加するにはどうすればよいですか? 答えは、それがAPIに組み込まれていないことを示唆しており、実際、これを行うコードが見つかりませんでした. ただし、2.3.4 (API 10) のキーボードは、この機能が実装されていることを示しています。
IT がどのようにそれを行っているかを知りたいのですがonDraw()
、私が見ることができるメソッドのどこにもありません。KeyboardView 要素の外に書かれていると思います。ただしlayout
、組み込みのキーボードに KeyboardView 要素を表示するために使用されるファイルが見つかりません。誰かがこれを見つける場所を知っていれば、必要な手がかりが得られるでしょう。
編集 4:トピックから少しずれているため、重要なプレビューの質問をここに移動しました。