2011-10-27 4 views
1

だけで簡単な質問:Android MotionEvent getY(int):どちらの呼び出しが正しい方法ですか?ドキュメントを確認する

getY(int) function from MotionEvent Androidの中には、そのドキュメントで私を混乱させる:

は、Yが与えられたポインタのインデックスのために、このイベントの座標を返します(getPointerId(int型を使用します)このインデックスのポインタ識別子を見つける)。整数はピクセルです。値は、サブピクセル精度である入力デバイスの分数を有することができる。

for(int i = 0; i < event.getPointerCount(); ++i) { 
    // Some code... 
    int currentPointer = event.getPointerId(i); 
    float currentY = event.getY(currentPointer); 
    Log.i("test", "Pointer " + currentPointer + " has Y-coord of " + currentY); 
    // Some more code ... 
} 

しかし、私のサムスンギャラクシータブでのテストでは、私がのgetYにcurrentPointerを渡すべきではないと思われるのではなく、単に ':私は、コードは次のように書かれるべきであると考えていると

私はそうです:

for(int i = 0; i < event.getPointerCount(); ++i) { 
    // Some code... 
    int currentPointer = event.getPointerId(i); 
    float currentY = event.getY(i); 
    Log.i("test", "Pointer " + currentPointer + " has Y-coord of " + currentY); 
    // Some more code ... 
} 

getPointerIdとgetY関数を使用する正しい方法はありますか?あなたはそれらに同じ '私'の変数と実際のポインタIDの両方を与えませんか?

私はこれが自分のデバイスだけでなく、これが実際に動作する方法であることを確認したいので、私は尋ねています。ありがとう。

+0

私はあまりにも苦労しました。たぶん私の答えは[MotionEventの問題](http://stackoverflow.com/questions/7545591/motionevent-issues/7577139#7577139)は、あなたがそれをよりよく理解するのに役立つでしょう... – Knickedi

+0

@Knickedi私がちょうど発見したものを確認していただきありがとうございます自分のため。それはまるですべてがうまくいくように見えますが、マルチタッチを試してみるとそれは明らかではありません。 –

+0

この回答は何のためでもなく、あなたを助けたことをうれしく思っています。マルチタッチについては本当に混乱していることがいくつかあります。ドキュメントが役に立たなくて、あなたが理解するのを助けるよりもあなたを混乱させていると述べたように... – Knickedi

答えて

1

はい、正しく、 "i"だけを指定してください。

すべてのgetPointer *(int)メソッドは、パラメータと同じインデックスを使用します。

関連する問題