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のクリックイベント


コメント