2015/06/22

onTouchEvent

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 件のコメント:

コメントを投稿