2011年1月20日木曜日

Xperiaマルチタッチアップデート後のMotionEventの挙動

2011/01/19にXperiaのマルチタッチ対応も兼ねた、ソフトウェアアップデートが配信された。
2点までとはいえ、ハード側で非対応とされたものをソフト側で対応してくるとはソニエリ様様。

ちょうどタッチに関するプログラムを書いていたこともあって、
アプリ側での挙動がどう変わったかを(これで正しいのかはわからないが)簡単に調べてみた。

まず、アップデート前

















タッチされたときにアプリがOSから受け取るMotionEventから、
どんなアクションだったかを抜き出してログに表示させてある。

黒枠のところをみると、
ACTION_DOWN,
ACTION_MOVE,
ACTION_UP
が表示されている。
(pidはポインターID)

これは1点タッチのときに受け取るもので、2点タッチ以上したところでこれしか受け取らない。


2.2(GalaxyTab)の場合

















ACTION_DOWNのほかにACTION_POINTER_DOWNが表示されている。

2点タッチ以降は ACTION_POINTER_DOWN が伝えられる。
GalaxyTabは5点タッチまで認識するのでpidが0~4まである。


Xperiaアップデート後

















Xperiaをアップデートすると2点タッチした際にきちんと
ACTION_POINTER_DOWNが伝えられ、pidも0,1となっている。


プログラムは
グロブ:Android(X06HT Desire) ピンチイン・ピンチアウトのサンプルを作成してみる
http://typea.info/blg/glob/2010/08/androidx06ht-desire-3.html
を参考にさせていただいた。

0 件のコメント:

コメントを投稿