회색님이 예전에 올려주신 소스를 바탕으로 열심히 공부하고 있던중에 이미지를 스크롤할시에 한장씩 보여지게 하고 싶어서

나름 여기저기 뒤져서 onscroll를 이용하는 방법이 있다고 해서 허접한 실력으로 도전해봤는데 스택오버플로우가 뜨고...

도통 감을 못잡겠네요

소스코드한번 보시고 가르침을 주셨으면 좋겠습니다.

-------------------------------------------------------------------------------------------------------------------------------------------------------

package com.photo;

import android.app.Activity;
import android.content.ContentUris;
import android.content.Context;
import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.GestureDetector.OnGestureListener;
import android.widget.CursorAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class photo extends Activity implements OnGestureListener{ 
private GestureDetector gestureScanner;
@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        gestureScanner = new GestureDetector(this);
        setContentView(R.layout.main);
        Gallery gallery = (Gallery) findViewById(R.id.gallery);
      Cursor c = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
     null,null,null,null); 
      ImageCursorAdapter adapter = new ImageCursorAdapter(this, c);
        gallery.setAdapter(adapter); 
        
    }
public boolean onTouchEvent(MotionEvent event) {
return gestureScanner.onTouchEvent(event);
  }
  
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// TODO Auto-generated method stub
return false;
}
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
 // TODO Auto-generated method stub
 Configuration config = getResources().getConfiguration();
    
 if ( distanceX > 50 ) {
 
 if ( config.orientation != Configuration.ORIENTATION_LANDSCAPE )
 return this.onScroll(e1, e2, 150, distanceY);
 else
 return this.onScroll(e1, e2, 250, distanceY);
   
 } 
 else if ( distanceX < - 50 ){
 if ( config.orientation != Configuration.ORIENTATION_LANDSCAPE )
 return this.onScroll(e1, e2, -150, distanceY);
 else
 return this.onScroll(e1, e2, -250, distanceY);
  }
 else {
 return this.onScroll(e1, e2, distanceX, distanceY);
   }
// return false;
 
}

public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
    class ImageCursorAdapter extends CursorAdapter  {
    
     public ImageCursorAdapter(Context context, Cursor c) {
     super(context, c);
    
     }
     @Override
     public void bindView(View view, Context context, Cursor cursor) {
     ImageView img = (ImageView)view;
      
     long id = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media._ID));  
     Uri uri = ContentUris.withAppendedId(Images.Media.EXTERNAL_CONTENT_URI, id);
     try {
     Bitmap bm = Images.Media.getBitmap(getContentResolver(), uri); //Bitmap 로드
     img.setImageBitmap(bm); 
          
         
     } catch(Exception e) {} 
     }
     @Override
     public View newView(Context context, Cursor cursor, ViewGroup parent) {
      ImageView v = new ImageView(context);
      v.setLayoutParams(new Gallery.LayoutParams(320,430)); 
      v.setScaleType(ImageView.ScaleType.FIT_CENTER);
      
      return v;
     }
  
   }

}