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 이런식으로 저장되어 있는 파일을
갤러리 뷰로 뿌려주려고 합니다.
뿌려주는거 까지는 잘 되는데 제가 이미지 클릭시에 해당 파일명을 가져오고싶거든요
그래서 빨간색으로 칠해진 부분에서 제가 이미지 파일명을 가져오도록 하였는데요
문제는 맨 처음에 어플 실행하고 오른쪽으로만 넘기면서 클릭했을때는 제대로 파일명이 뜨는데
왼쪽으로 이미지 이동시에 파일명이 뒤죽박죽이 되더라구요..어떻게 수정해야될까요??
제 생각에는 파란색으로 되어있는 코드 부분을 수정해야 될거 같은데 제가 이 코드를 확실하게
이해하지 못해서 그런지 어떻게 수정해야될지 모르겠습니다.. ㅠ_ㅠ