2011-06-23 64 views
6

従来のキーボードではないアンドロイド用のIMEを作成しようとしています(異なる文字に対応するキーの行)。 SDKのコード例では、キーボードAPIを使用しており、関数が組み込まれています。Android:キーボード以外のIME

IMEのインターフェイスをXMLファイルに設計したのは、単にアプリケーション内のアクティビティだが、キーボードは単に別のスタイルから構築されたオブジェクトなので、デモでは失われてしまっているXML構造。

誰かがtradionalキーボード構造を使用していないオープンソースプロジェクトへのリンクを持っている場合、または既にIMEウィンドウに構築したUIの表示に簡単に誘導できる場合は、 。

さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。 ありがとうございます。

+0

設定する方法を、私を助けてくださいあなた自身のキーボード?私は別のアプリケーションを使用して行っている。私はテキストボックス(左または右)の近くに小さなキーボードを表示したい。これは私の質問です。 http://stackoverflow.com/questions/7357876/set-keyboard-coordination-how-to-set-the-keyboard-xy-coordination私は自分のキーボードでAndroid APIデモを使っています... – Piraba

答えて

6

サンプルは実際にはあなたが必要とするものと同様に構造化されていますが、わかりませんがそれを打破してみましょう - ここに完全スタブは、入力メソッドのサービスとして動作し、標準のXMLキーボードを使用することです:2つのXML文書に名前が付いていることを

import android.inputmethodservice.InputMethodService; 
import android.inputmethodservice.Keyboard; 

public class MyInputMethod extends InputMethodService { 
    private Keyboard mKeyboard; 

    @Override public void onInitializeInterface() { 
     mKeyboard = new Keyboard(this, R.xml.qwerty); 
    } 

    @Override public View onCreateInputView() { 
     mInputView = (KeyboardView) getLayoutInflater().inflate(
       R.layout.input, null); 
     mInputView.setKeyboard(mKeyboard); 
     return mInputView; 
    } 
} 

注意。最初のres/xml/qwerty.xmlは、KeyboardViewクラスがキーボードの描画方法を知るようにレイアウトを定義しています。

しかし、それは膨張し、レイアウト、res/layout/input.xml、(簡体字)これで構成されています

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <android.inputmethodservice.KeyboardView android:id="@+id/keyboard" /> 
</LinearLayout> 

これは、あなたが宣言ビューを作成するために必要なすべてのです!スタンドアロンのViewを作成することは、Activityを作成することとあまり変わりません。標準アクティビティライフサイクルはありませんが、どちらの環境でもXMLレイアウトにアクセスできます。インフレータを使用し、必要なサブビューを参照してメインビューを返すだけです。

これを考えた後、あなたのレイアウトを膨らませることができればうれしいです。


レイアウトが単純な場合でもXMLレイアウトを使用する必要はありません。入力方法がで、1つのビューの全体がの場合は、直接onCreateInputViewにインスタンス化できます。ここでは任意のXMLを使用していない完全スタブの入力方法サービスです:

public class MyInputMethod extends InputMethodService { 
    MyView view; 

    @Override 
    public View onCreateInputView() { 
     return view = new MyView(this); 
    } 

} 

(もちろんマニフェストで定型とres/xml/method.xmlファイルがまだ存在することになる。)

+0

ありがとう、私はそのような単純な見落としを見落としたキーボードのクラスとメソッドのすべてに巻き込まれました。 – cmcowart

+0

私はこの質問を手伝ってください。成功すれば...助けてくださいhttp://stackoverflow.com/questions/7357876/set-keyboard-coordination-how-to-set-the-keyboard-xy-co -ordination – Piraba

+0

このスレッドは死んでいると思いますが、マニフェストには何が必要ですか? – Zwade

関連する問題