2009年1月18日日曜日

Android Dev Phone 1 でタッチパネル&トラックボール入力

投稿を分けますが、G1で入力インターフェースを色々試しています。

UIのサンプルプログラムは、ApiDemos に入っているので、そちらを参考にしています。現在、主に、OpenGLESのプログラムをCで書いていますが、UIはJAVAのクラスが充実していますので、JAVA側で取得して、Nativeに渡すようにしています。

まず、タッチパネルですが、特に問題なく動きました。

まず、View のクラスに

@Override
public boolean onTouchEvent( MotionEvent event) {
return true;
}

をつければいいです。また、トラックボール入力は、

@Override
public boolean onTrackballEvent( MotionEvent event) {
return true;
}

これでよいはずです。

あと、これだけで動かなくて困ったときは、
setClickable(true);
setFocusable(true);
を呼んでおきましょう。重要なおまじないです。

ただし、このタッチパネル&トラックボール入力は、かなり重たいように感じています。タッチしているときのGLのパフォーマンスを見ていると、フレームレートが半分になったりして、どこかでスレッドの処理が固まっている感じもします。他のセンサー入力も同様のコールバックですが、そんなことにはなりません。まあ、そんなに激しくタッチするアプリも少ないと思うので今のところ困ってる人はいないのかもしれませんが。

さらに、タッチパネルやトラックボールを動かしていると、入力をアプリで使っていなくても、処理が重たい気がします。常時、バックグラウンドでドライバが動いているためでしょうか。

0 件のコメント: