안드로이드에서 Fling 이벤트를 이용하여 화면의 이미지를 변경하는 예
Fling의 방향에 따라서 보여줄 이미지가 결정된다
MainActivity.java
package com.example.androidapp; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.widget.ImageView; public class MainActivity extends Activity implements OnGestureListener { ImageView iv; GestureDetector gd; int[] idArr = { R.drawable.mt01, R.drawable.mt02, R.drawable.mt03, R.drawable.mt04, R.drawable.mt05, }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i("onCreate", "onCreate실행됨"); iv = (ImageView) findViewById(R.id.imageView1); iv.setImageResource(idArr[0]); gd = new GestureDetector(this); } @Override public boolean onTouchEvent(MotionEvent event) { if(gd!=null) { return gd.onTouchEvent(event); } return super.onTouchEvent(event); } int idx; /* 아래에 있는 메소드는 모두 OnGestureListener에 포함되어 있다 */ public boolean onFling(MotionEvent e1, MotionEvent e2, float speedX, float speedY) { if(speedX > 0){ // 오른쪽으로 플링 idx++; idx = (idx==idArr.length) ? 0 : idx; iv.setImageResource(idArr[idx]); }else if(speedX < 0) { // 왼쪽으로 플링 idx--; idx = (idx<0) ? idArr.length-1 : idx; iv.setImageResource(idArr[idx]); } return false; } public boolean onDown(MotionEvent arg0) { return false; } public void onLongPress(MotionEvent arg0) {} public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, float arg3) { return false; } public void onShowPress(MotionEvent arg0) {} public boolean onSingleTapUp(MotionEvent arg0) { return false; } }