●イベント



■クリック

XXX.setOnClickListener(new onClick_listener());

private class onClick_listener implements android.view.View.OnClickListener {
    public void onClick(android.view.View view) {
    }
}


■長押し、ロングクリック

XXX.setOnLongClickListener(new onLongClick_listener());

private class onLongClick_listener implements android.view.View.OnLongClickListener {
    public boolean onLongClick(android.view.View view) {
        return false//falseでonClickイベントを呼び出す
    }
}


■タッチ・スライド

XXX.setOnTouchListener(new OnTouch_listener());

private class OnTouch_listener implements android.view.View.OnTouchListener
{
    @Override
    public boolean onTouch(android.view.View v, android.view.MotionEvent e){
        //MotionEvent.ACTION_DOWN タッチを押した
        //MotionEvent.ACTION_UP   タッチを上げた
        //MotionEvent.ACTION_MOVE タッチしてスライドした 対象のオブジェクトの外まで座標が取れる
        if(android.view.MotionEvent.ACTION_DOWN==e.getAction()) {
            android.widget.TextView t=(android.widget.TextView)findViewById(R.id.textView4);
            t.setText( "ACTION_DOWN " + e.getX() + " : " + e.getY());
        }
        return true;
    }
}


 ▼マルチタッチ

private class OnTouch_listener implements android.view.View.OnTouchListener
{
    @Override
    public boolean onTouch(android.view.View v, android.view.MotionEvent e){
        android.widget.TextView t=(android.widget.TextView)findViewById(R.id.textView4);
        String str="";

        int count=e.getPointerCount()
        for(int i=0;i<count;i++) {
            str=str + e.getX(i) + " : " + e.getY(i) + "\n";
        }
        t.setText(str);

        return true;
    }
}

e.getPointerCount()にマルチタッチの個数が入ってきます。
インデックスが5個までのタッチが入ってきます。
座標を取るには、e.getX(i) e.getY(i)の引数に取るべきインデックスを入れるとそれぞれの座標が取得できます。


▲トップページ > android