마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

특정폴더의 이미지를 불러오는 작업중입니다.

0 추천

public View getView(final int position, View convertView, ViewGroup parent) {

  ImageView imageView;
 
  if(convertView == null)
    imageView = new ImageView(mContext);
  else
    imageView = (ImageView) convertView;
 
  String strPath = Environment.getExternalStorageDirectory() + File.separator + "DCIM/Camera" + File.separator;
  Uri uriPath = Uri.parse(strPath);
 
  mCursor.moveToPosition(position);
  Uri uri = Uri.withAppendedPath(uriPath,    mCursor.getString(mCursor.getColumnIndex(MediaStore.Images.Thumbnails._ID))); 
  imageView.setImageURI(uri);
  imageView.setAdjustViewBounds(true);
  imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
  imageView.setLayoutParams(new GridView.LayoutParams((widthPixels/3) - 10 , heightPixels/5));
 
  return imageView;
}
 

 

특정 폴더에 있는 이미지를 긁어오는 작업을 하고있습니다.

저런식으로 코딩을 했더니 resolveUri failed on bad bitmap uri : /xxx/xxxxxx/xxxxx/xxxx/xxx

이렇게 로그가 발생하네요..

현재 mCursor로 getString하는 필터링을 잘 몰라서 막힘이 있습니다.

 
 
 
연필좀주세요 (810 포인트) 님이 2015년 1월 21일 질문

1개의 답변

+1 추천
 
채택된 답변

mCursor.moveToPosition(position);

왜 커서의 인덱스를 getView의 position으로 사용하셨죠? 그부분 부터 잘 못된것으로 보입니다만.

세기말소년 (3,280 포인트) 님이 2015년 1월 21일 답변
연필좀주세요님이 2015년 1월 21일 채택됨
여기저기 찾아보면서 만들고있는거라..
그럼 moveToFirst()로 시작해야 하는건가요?..
조언좀 부탁드릴께요!
우선 커서에서 리스트뷰 아답터에 데이터를 담는 로직을 분리하시구요, 이미지 데이터 배열이 담기면 리스트뷰에 셋팅하고 notify 하시는 방향으로 구현하시는게 좋겠네요.

이미지뷰에는
MediaStore.Images.media.getbitmap이나 MediaStore.Image.thumnails.getthumbnail 등을 활용해서 Bitmap 셋팅하시면 되겠네요.
답변 감사합니다 : )!!!!
...