public class ImageAdapter extends BaseAdapter{
  private String imgData;
  private String geoData;
  private ArrayList<String> thumbsDataList;
  private ArrayList<String> thumbsIDList;
  
  ImageAdapter(Context c){
   mContext = c;
   thumbsDataList = new ArrayList<String>();
   thumbsIDList = new ArrayList<String>();
   getThumbInfo(thumbsIDList, thumbsDataList);
  }
  public boolean deleteSelected(int sIndex){
   return true;
  }
  
  public int getCount() {
   return thumbsIDList.size();
  }

  public Object getItem(int position) {
   return position;
  }

  public long getItemId(int position) { 
   return position;
  }
  public View getView(int position, View convertView, ViewGroup parent) {
   ImageView imageView;  
   if (convertView == null){
    imageView = new ImageView(mContext);
    imageView.setLayoutParams
    (new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,
      LayoutParams.MATCH_PARENT));
    imageView.setAdjustViewBounds(true);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setPadding(2, 2, 2, 2);
   }else{
    imageView = (ImageView) convertView;
   }
   Display display;
   WindowManager manager =
     (WindowManager)mContext.getSystemService(mContext.WINDOW_SERVICE);
   display = manager.getDefaultDisplay();
   int width = display.getWidth();
   int height = display.getHeight();
   
   BitmapFactory.Options bo = new BitmapFactory.Options();
   bo.inSampleSize = 2;
   Bitmap bmp = BitmapFactory.decodeFile(thumbsDataList.get(position),bo);
   
   Log.i("aa",thumbsDataList.get(position));
   imgName=thumbsDataList.get(position);           --------------> 이 부분에서 이미지 이름을 읽어옵니다.
   int index = imgName.length();
   index = index - 4;
   imgName = imgName.substring(0, index);
   index = imgName.length();
   String temp = imgName.substring(29, index);  
   imgName = "/mnt/sdcard/"+temp;
   //"/mnt/sdcard/video_thumbnails/"
   
   
   
   Bitmap resized = Bitmap.createScaledBitmap
     (bmp, (width/2)+(width/4), (height/2)+(height/7), true);  
   imageView.setImageBitmap(resized);      
   return imageView;
  }
  private void getThumbInfo
  (ArrayList<String> thumbsIDs, ArrayList<String> thumbsDatas){
   String[] proj = {MediaStore.Images.Media._ID,
        MediaStore.Images.Media.DATA,
        MediaStore.Images.Media.DISPLAY_NAME,
        MediaStore.Images.Media.SIZE};
   Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
     proj, "bucket_display_name='video_thumbnails'", null, null);
   //sdcard 내의 특정 폴더에서 이미지를 읽는다

   if (imageCursor != null && imageCursor.moveToFirst()){
    String title;
    String thumbsID;
    String thumbsImageID;
    String thumbsData;
    String data;
    String imgSize;
    
    int thumbsIDCol = imageCursor.getColumnIndex
      (MediaStore.Images.Media._ID);
    int thumbsDataCol = imageCursor.getColumnIndex
      (MediaStore.Images.Media.DATA);
    int thumbsImageIDCol = imageCursor.getColumnIndex
      (MediaStore.Images.Media.DISPLAY_NAME);
    int thumbsSizeCol = imageCursor.getColumnIndex
      (MediaStore.Images.Media.SIZE);
    int num = 0;   
    do {
     thumbsID = imageCursor.getString(thumbsIDCol);
     thumbsData = imageCursor.getString(thumbsDataCol);
     thumbsImageID = imageCursor.getString(thumbsImageIDCol);
     imgSize = imageCursor.getString(thumbsSizeCol);
     num++;
     if (thumbsImageID != null){
      thumbsIDs.add(thumbsID);
      thumbsDatas.add(thumbsData);
     }
    }while (imageCursor.moveToNext());
   }
   imageCursor.close();
   return;
  }
  private String getImageInfo(String ImageData, String Location, String thumbID){
   String imageDataPath = null;
   String[] proj = {MediaStore.Images.Media._ID,
      MediaStore.Images.Media.DATA,
      MediaStore.Images.Media.DISPLAY_NAME,
      MediaStore.Images.Media.SIZE};
   Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
     proj, "_ID='"+ thumbID +"'", null, null);
   
   if (imageCursor != null && imageCursor.moveToFirst()){
    if (imageCursor.getCount() > 0){
     int imgData = imageCursor.getColumnIndex(MediaStore.Images.Media.DATA);
     imageDataPath = imageCursor.getString(imgData);
     
    }
   }   
   imageCursor.close();
   return imageDataPath;
  }  
 }

 

제가 어댑터뷰로 갤러리뷰를 만들어서 이미지를 한장씩 넘기면서 보는 프로젝트를 하고있는데요

sdcard/특정폴더/이미지.jpg 이런식으로 저장되어 있는 파일을

갤러리 뷰로 뿌려주려고 합니다.

 

뿌려주는거 까지는 잘 되는데 제가 이미지 클릭시에 해당 파일명을 가져오고싶거든요

그래서 빨간색으로 칠해진 부분에서 제가 이미지 파일명을 가져오도록 하였는데요

 

문제는 맨 처음에 어플 실행하고 오른쪽으로만 넘기면서 클릭했을때는 제대로 파일명이 뜨는데

왼쪽으로 이미지 이동시에 파일명이 뒤죽박죽이 되더라구요..어떻게 수정해야될까요??

 

제 생각에는 파란색으로 되어있는 코드 부분을 수정해야 될거 같은데 제가 이 코드를 확실하게

이해하지 못해서 그런지 어떻게 수정해야될지 모르겠습니다.. ㅠ_ㅠ