--/--/--(--)


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
コメント(-) | トラックバック(-) | --:--:--

2010/10/16(土)


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;
 }
}

コメント(0) | トラックバック(0) | 12:43:38
コメントを書く

管理者にだけ表示を許可する
トラックバック:0 - http://genmaicha460.blog27.fc2.com/tb.php/37-00368ee2

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。