Home > android > Androidでフリック入力

Androidでフリック入力

以前にSimejiをソフトキーボードに対応しました。
しかし、ソフトキーボードのQwerty配列が好きになれない。
ということで、Simejiをフリック入力対応にしてみました。

フリック入力とは

日本のケータイはキーを押した回数で入力文字を選ぶ仕組みです。
自明ですが、「あ」を3回押すと「あ→い→う」とトグルします。
それに対し、フリック入力はソフトキーボードのキーをスライドすることで入力文字を選びます。
例えば、「あ」をタッチしたまま左にスライドすると「い」が入力できます。
上にスライドすると「う」、右なら「え」、下なら「お」というように、
子音と母音の組合わせで文字を形成する日本語ならではの入力方法です。
この入力方法はiPhone(iPod touch)で採用されています。

キーストローク

フリック入力の優れている点は、キーストロークが短いことにあります。
乱暴に計算すると、ケータイ入力方式では1文字を決定するのに平均3ストローク必要です。
それに比べてフリック入力方式では平均1.8ストロークになります。
#スライド動作を1ストロークと計算しています。

ちなみに、ポケベル入力方式では2ストロークです。
このように、フリック入力方式はとても効率が良いのです。

慣れるまではちょっと戸惑いますが、
慣れてしまえば、非常に高速に入力できます。

スクリーンキャスト

とりあえず、フリック入力に対応したSimejiをご覧下さい。

インストール

野良アプリとして公開しますので、ご利用になりたい方はダウンロードしてインストールして下さい。
Simeji2.3.0.apk(変更:フリック入力に対応しました @18th May, 2009)
Simeji2.3.1.apk(変更:MENUキーによるキーボード切換えバグ、「わ」のダウンフリックによるnullバグの修正 @19th May, 2009)
Simeji2.3.2.apk(変更:フリックキーボードとハードキーボードとの切換え時のSimejiダウンを修正 @19th May, 2009)
Simeji2.3.3.apk(変更:[お]→[ぉ]の変換ミスを修正 @21th May, 2009)
最新版をご利用下さい。

設定

IMEの設定については以前のエントリをご参照下さい。

フリックの実現

少し、技術的な話を…
フリックで出現する青色の矢印のような画像は「android.widget.PopupWindow」で実現しています。
これを使うと自アプリの描画エリアとは別に、画面上のどこにでもViewを描画できます。
PopupWindowを使うことでキーボードエリアからはみ出るフリックを表示することができました。

簡単な使い方をご紹介します。

public class MyView extends View {
  private PopupWindow mPopup;
 
  // Viewを持つPopupWindowを作成する
  public void makePopupWindow(View v) {
    mPopup = new PopupWindow(context);
    mPopup.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    mPopup.setContentView(v);
  }
 
  // MyViewからの相対位置(x, y)にPopupWindowを表示する
  public void showPopupWindow(int x, int y) {
    if (mPopup.isShowing()) {
      View v = popup.getContentView()
      int width = v.getMeasuredWidth();
      int height = v.getMeasuredHeight();
      mPopup.update(x, y, width, height);
    } else {
      mPopup.showAtLocation(this, Gravity.NO_GRAVITY, x, y);
    }
  }
}

PopupWindowにViewを設定して、showAtLocationで表示するだけです。
既に表示中のPopupWindowに対して表示を変更したい場合はupdateとします。
たったこれだけで、自分のアプリの描画領域を飛び出してViewを表示できるようになります。

このエントリをはてなブックマークに登録 Deliciousにブックマーク
関連のありそうなエントリ

Comments:18

MichaeL 09-05-19 (火) 1:01

すごすぐる!
俺らがやろうと思ってもできないことを平然とやってのける!
そこにしびれるあごがれるぅっ!

tachibana 09-05-19 (火) 1:04

こんばんは。いつも楽しく拝見させていただいています(^^

細かいところなのですが、
1) フリッカー状態のキーボードが出ている時にメニューボタンを押してしまうとHomeのコンテキストメニューが出て、かつキーボードがqwertyキーボードに切り替わってしまう(HomeでもaHomeでもなります)

2) 「わ」キーを下にフリックした時にStringでnullが出力されてしまう

の2点を時間がある時にでもと思います(^^;

2)はsimejiが強制終了してしまう時もありました。ログ取ってますのでもし要るようでしたら言って下さい。

また、お邪魔させて頂きます。

adamrocker 09-05-19 (火) 2:34

>MichaeLさん
落ちつくんだ…
『素数』を数えて落ちつくんだ…
『素数』は1と自分の数でしか割ることのできない孤独な数字…
わたしに勇気を与えてくれる。2…3…5…7…11…13…17…19

>tachibanaさん
バグ報告ありがとう御座います。
(1)はハードキーボード対応の考慮漏れでした><
教えて頂きありがとう御座います。
(2)はヒドいバグですね(汗
どっちも修正しました(Simeji2.3.1.apk)。
ついでに、強制終了する場合が再現できなかったので、できればログを頂けないでしょうか?
メールに添付して頂けると幸いです。
アドレスは本ブログの上にある「Profile」からご参照頂けると思います。

また何かありましたらよろしくお願いします。

ついでに…
キータッチ音を付けてみました。
エミュレータではAndroid Keyboard同様に音が出ないのですが(汗
フリックも半透明にして、見た目で浮かないようにしました。
その他にも、tachibanaさんに指摘して頂いた箇所以外の細かいバグを修正しました。< Simeji2.3.1.apk
よければ使ってやって下さい。

ゲスト 09-05-19 (火) 11:20

はじめましてUです。
Simeji2.3.1のバグについての報告をさせていただきます。

1.ハードウェアキーボードとソフトウェアキーボードを切り替えると以下のように表示され起動に失敗する。
—————————–
Sorry!
The application Simeji
(process com.adamrocker.
android.input.simeji) has
stopped unexpectedly. Please
try again.
—————————–
2.ソフトウェアキーボードで、前に入力して確定した文字列が次の入力確定のときに再度挿入されることがある。(条件不明)

どんどん進化していくSimejiを楽しみにしています。

minghai 09-05-19 (火) 22:35

すっごいです!
できましたら私のSKKにも移植したいのですが、ソースの開示は可能でしょうか?
よろしくお願いいたします。m(_ _)m

adamrocker 09-05-19 (火) 23:24

>Uさん
連絡ありがとう御座います。
まだまだ気づかないバグが潜んでますね><
フレームワークのソースを読んでようやく原因が分かりました。
修正しましたので良ければ使って下さい(Simeji2.3.2.apk)。

>minghaiさん
ありがとうございます。
Simejiの最終目標はオープンソース化なんですが、まだそんなレベルにありません><
まだまだ実装したいモノが多いのでソースがドンドン増えてます(汗
そのせいもあってソースが読み難く、構造も汚いので公開はしばらくお待ち下さい。
ちなみに実装はonTouchEventでフリック方向を計算して、onDownKeyのキーと組み合わせることで平仮名を決定しているだけです。

minghai 09-05-20 (水) 7:34

adamrocker様、
ありがとうございます。
こちらでも頑張ってみます!

adamrocker 09-05-20 (水) 7:42

>minghaiさん
いかんせん、限られた時間に1人で開発していますので、
なかなかソース公開にいたるまでになれません><
お互い、頑張りましょう^^

weakboson 09-05-21 (木) 2:58

すばらしいです!
こころなしか、変換が始まるまでのタイムラグなんかも改善されているようで、あんまりオンラインで動いている気もしなくなってきました!
いきなりですいませんが、「ぉ」(小さい「お」)が入力できないようです。

adamrocker 09-05-21 (木) 7:02

>weakbosonさん
ありがとうございます。
小さい「お」への変換は辞書登録ミスがありました><
お恥ずかしい限りです。ご指摘ありがとう御座いました^^
さっそく修正しました(Simeji2.3.3.apk)。

tachibana 09-05-22 (金) 14:20

お忙しいところ色々と修正して頂きありがとうございます。

Simeji2.3.3.apkなのですが、起動時に無線LANに接続するのにもたついたり、接続できなかった時に強制終了が連発し、閉じても閉じてもあの忌まわしいダイアログが出続けます(笑)。

SIMカードが入っていない端末でしか発生しない現象かもしれませんがもしよければダイアログが出ないように処理入れといて頂けたらうれしいです。

ログ送っときますね〜

tachibana 09-05-26 (火) 10:58

ご対応ありがとうございました。

2.4.0で確認したところ、同様のエラーは出なくなりました。お手間をおかけし申し訳ありません。

引き続きありがたくご利用させて 頂きます。

lazyw0rkers 09-07-14 (火) 3:09

7月10日にHT-03Aを購入して3日経ちますが、「もっと早くに出会いたかった!」と思わせる素敵なソフトだと思います。

ありがとうございました。

trshugu 09-08-02 (日) 8:31

これって予測OFFと変換はできないんでしょうか。

adamrocker 09-08-02 (日) 9:13

>lazyw0rkersさん
ありがとう御座います。
そういって頂けると嬉しいです^^

>trshuguさん
次バージョンで単漢字変換を実装する予定です。
暫くお待ち下さい。

kaba 10-01-05 (火) 19:50

HT03Aで使用させてもらっています。
非常に重宝していますが一つ聞きたいことがあります。
ダウンロード時に個人情報の収集(暗証番号含む)とありましたがそのようなことが可能なのでしょうか?
ネットバンク及びネット証券で使用を考えているのですが少々不安です。

adamrocker 10-01-05 (火) 20:24

>kabaさん
コメント有難うございます。
Simejiに限らず全てのIMEアプリケーションは個人情報を収集することが技術的に可能です。
というのも、ソフトキーボードやハードキーボードの内容を把握して、予測変換候補を列挙するなどの処理を行っているためです。
この時に入力内容をどこかに保存することはプログラム的に容易です。
ということでAndroidは全てのIMEアプリケーションにおいて、そのような危険性があるので信頼できるIMEを使って下さいねという警告を出しているわけです。
当然ですが、Simejiは一切個人情報を取得したり横流ししたりしていません。
ご安心してお使い下さい^^

kaba 10-01-07 (木) 21:17

丁寧なるご返答有り難うございます。
これで安心してSimejiを使用することが出来ます。

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

Trackbacks:4

Trackback URL for this entry
http://www.adamrocker.com/blog/256/simeji-for-android-flick-input.html/trackback/
Listed below are links to weblogs that reference
Androidでフリック入力 from throw Life
trackback from hClippr編集室ブログ 09-05-21 (木) 18:25

[hClippr] Androidの日本語入力(Cupcak…

米国ではまだCupcakeと呼ばれるバージョン1.5がロールアウトされていないのですが、英国版がそのままとりあえず使える、ということで実際にインストールしてみました。 (more…)

trackback from throw Life 09-05-23 (土) 22:41

Androidでベル打ち…

今は懐かしいポケットベル入力方式にSimejiを対応しました。
キーマップを覚える必要はありますが、覚えてしまえば効率的で快感さえ覚える入力方式です。
少数派ユーザの要 (more…)

trackback from 紫水晶の和 09-07-14 (火) 3:18

HT-03Aでフリック入力 ■ simeji ありがとう ■…

Androidでフリック入力 iPhoneもいいけど、androidとコロコロに魅かれてHT-03Aを購入しました。 出社したら「フリック入力」なるキーワードを教えて (more…)

pingback from Xperia (Android) 入れてみた無料アプリのピックアップ。2010/04/26 | rapidlymage 12-09-12 (水) 0:11

[…] NP-Notepad Xperiaを使い始めてちょっと驚いたのがメモ機能がない!?ホントはあるのでしょうか? 取りあえずシンプル簡単にメモが取れるアプリが欲しいのでこちらのNP-Notepad。インターフェイス含めシンプルなノートアプリですが、複数メモの管理はもちろん、SDカード経由の.txtファイルをメモとしてインポートできたり、パスワード設定が出来たりとなかなか優れものです。 […]

Home > android > Androidでフリック入力

Author
Search
Feeds
Meta

Return to page top