Viewコンポーネントのタッチイベントについて、もう少し詳細に説明します。
たとえば画面を指で触ったとき、触った指を離したとき、画面上をスライドさせたとき、などその契機ごとにOnTouchListenerが呼び出されます。
タッチした時間や位置(座標)、押す強さなんかもリスナーで取得できるようです。
import android.app.Activity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.LinearLayout; public class MyClass extends Activity implements OnTouchListener{ public void myMethod(){ LinearLayout layout = (LinearLayout)this.findViewById(R.id.myLayout); layout.setOnTouchListener(this); } public boolean onTouch(View v,MotionEvent event){ // アクションを取得 int action = event.getAction(); switch(action){ case MotionEvent.ACTION_DOWN: // 押す case MotionEvent.ACTION_UP: // 離す case MotionEvent.ACTION_MOVE: // 動かす case MotionEvent.ACTION_CANCEL: // 押している間にキャンセル } // イベント開始(押した)時刻(恐らくアプリ起動からの経過時間ミリ秒) long start = event.getDownTime(); // [ms] // このイベントの発生時刻(恐らくアプリ起動からの経過時間ミリ秒) long now = event.getEventTime(); // [ms] // 絶対座標 float ax = event.getRawX(); float ay = event.getRawY(); // 相対座標 float x = event.getX(); float y = event.getY(); // 押す強さ(0.0 ~ 1.0 1.0 = normal) float pressure = event.getPressure(); // true:次のイベントを処理しない return false; } }
参考: Viewコンポーネントの余白設定
参考: TextViewのカスタマイズ
参考: ImageViewのカスタマイズ
参考: Viewのクリックイベント
コメント