Android3.1の注意 event.getX(1)について

838 views
Skip to first unread message

crazycircuit7

unread,
Aug 9, 2011, 11:23:50 PM8/9/11
to 日本Androidの会
今日Optimusが3.1にアップデートされました。
自分のアプリを動かしたら
「java.lang.IllegalArgumentException: pointerIndex out of range」が出たのでググる

3.0まではPointerCountが0しかない時(指一本)の時にevent.getX(1)をしてもエラーにならなかったが、
3.1からはチェックをするようになったようです。(厳しくなった。)

if(event.getPointerCount() > 1){
Log.d("X_Distance",":x0=" + event.getX(0) + ":x1=" +
event.getX(1));
Log.d("Y_Distance",":y0=" + event.getY(0) + ":y1=" +
event.getY(1));
}

おそらくXoomも同じだと思うので実機が無い方はPointerCountを入れておいた方がよいです。
http://code.google.com/p/android/issues/detail?id=16836

try/catchで回避する人もいるようですが、美しくないです。

event.getPointerCount()が正常な値を返さない時代も在ったような気がしますが、実機で確認しないと分かりません。
event.getPointerCount()で正常な値が取れるか確認してから実装してください。
みなさんの端末では正しい値が帰ってきますか?
Reply all
Reply to author
Forward
0 new messages