Androidアプリのプログラミング/Androidアプリプログラミング実践編

AndroidのIME機能を使って寿司ネタキーボードを作る(2ページ目)

AndroidにはIME(Input Method Editor)をカスタマイズできるAPIが付属されています。今回はそのAPIを利用してIMEをカスタマイズしてみましょう。

執筆者:若竹 雅貴



キーボードのレイアウトを作成する

続いて、キーボードのレイアウトをxmlファイルで設定します。resディレクトリ以下にxmlというディレクトリを作成し、そこにmykeyboard.xmlというファイル名でレイアウトファイルを作成します。

mykeyboard.xml
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
>

<Row>
<Key android:codes="97" android:keyLabel="a" android:keyEdgeFlags="left"/>
<Key android:codes="10000" android:keyLabel="まぐろ" android:keyWidth="15%p"/>
<Key android:codes="10001" android:keyLabel="漬けまぐろ" android:keyWidth="22%p"/>
<Key android:codes="10002" android:keyLabel="ビントロ" android:keyWidth="20%p"/>
<Key android:codes="10003" android:keyLabel="真だい" android:keyWidth="15%p"/>
<Key android:codes="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:isRepeatable="true"/>
</Row>

<Row>
<Key android:codes="10004" android:keyLabel="はまち" android:keyWidth="15%p" android:keyEdgeFlags="left" android:horizontalGap="5%p" />
<Key android:codes="10005" android:keyLabel="真いわし" android:keyWidth="20%p"/>
<Key android:codes="10006" android:keyLabel="サーモン" android:keyWidth="20%p"/>
<Key android:codes="10007" android:keyLabel="そでいか" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
</Row>

</Keyboard>
android:keyLabelはキーボード上に表示される文字列です。また、android:codesはキーコードの数字を表します。今回は大きく分けて2種類のキーを作ります。1つは通常のキーです。先頭のKeyタグが該当します。このキーは単純にIMEがどのように動くのかということを確認するために実装していおり、aというキーを表しています。aのキーコードは97なのでandroid:codesは97となります。

もう1つは寿司ネタのキーです。ここでは、キーコードが割り当てられていない数字を利用しています。

寿司ネタのキーコードを実装する

次に、寿司ネタのキーコードを指定するクラスを実装します。これは単純に先ほどmykeyboard.xmlで指定したキーコードを羅列しているだけです。

SushiCode.java
public class SushiCode {
public static final int MAGURO = 10000;
public static final int DUKE_MAGURO = 10001;
public static final int BINTORO = 10002;
public static final int MADAI = 10003;
public static final int HAMACHI = 10004;
public static final int MAIWASHI = 10005;
public static final int SALMON = 10006;
public static final int SODEIKA = 10007;
}
  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます