スクリーンを長押し/ダブルタップした時の処理
GestureDetectorを利用してイベントを検知します。
処理の実装は、SimpleOnGestureListenerで行います。
onDoubleTapは、ダブルタップ時
onLongPressは、長押し時
ActivityのCreate時に、
SimpleOnGestureListenerにイベント時の処理を実装して、
GestureDetectorを生成します。
onTouchEventをOverrideして、
GestureDetectorにeventを渡します。
● Activity
import android.os.Bundle;
import android.app.Activity;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.Toast;
public class MainActivity extends Activity {
private GestureDetector gestureDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureDetector = new GestureDetector(this,new SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent event) {
Toast.makeText(MainActivity.this, "ダブルタップ", Toast.LENGTH_LONG).show();
return super.onDoubleTap(event);
}
@Override
public void onLongPress(MotionEvent event) {
Toast.makeText(MainActivity.this, "長押し", Toast.LENGTH_LONG).show();
super.onLongPress(event);
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
|