onTouchEventの冒頭部分はこんな感じになっています。
@Override public boolean onTouchEvent(MotionEvent e)
{
for (int cnt = 0 ; cnt < e.getPointerCount() ; cnt++)
{
int x = (int) (e.getX(cnt) * gl.SCREEN_X / getWidth());
int y = (int) (e.getY(cnt) * gl.SCREEN_Y / getHeight());
e.getPointerCount では、タッチされた件数を取得します。
2箇所タッチされたら2となります。
cntがイベントのインデックスとなっており、インデックスは0からです。
うまい具合に、forループの条件にタッチ件数とインデックスを使用できます。
e.getX、e.getYにより画面上でタッチされた位置を取得できますが、
ここでは実画面サイズでの位置が取得できます。
setFixedSize された位置ではないので、拡大・縮小分を計算する必要があります。
(最初はこれが解からず、正しく判定できないでいました)
0 件のコメント:
コメントを投稿