2014-09-05 8 views
0

MediaStore를 사용하여 휴대 전화/태블릿에서 모든 이미지를 가져 오려고합니다. 나는 그걸로 성공했다.Android MediaStore 썸네일이 없습니다.

String[] projection = new String[]{ 
      MediaStore.Images.Media.DATA, 
      MediaStore.Images.Media.BUCKET_DISPLAY_NAME 
    }; 
Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; 
Cursor cur = activity.getContentResolver().query(images, 
      projection, // Which columns to return 
      "",   // Which rows to return (all rows) 
      null,  // Selection arguments (none) 
      ""   // Ordering 
    ); 
if (cur.moveToFirst()) { 
    String photo; 
    String album; 
    int bucketColumn = cur.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME); 
    int photoColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); 
    album = cur.getString(bucketColumn); 
    photo = cur.getString(photoColumn); 
}//Just parts of code 

MediaStore에서 가져온 이미지로 GridView를 만들고 싶습니다.


많은 사진이있는 경우 문제가 발생하기 쉽습니다. 유니버설 이미지 로더 (Universal Image Loader)를 사용하기 때문에 괜찮습니다.하지만 정말 빨리 처리해야합니다. 그래서 안드로이드는 MediaStore.Images에 저장된 사진의 미리보기 이미지를 가지고있는 것으로 나타났습니다. 미리보기 이미지는 내 자신의 미리보기 이미지를 만들 필요가 없습니다.

Get thumbnail Uri/path of the image stored in sd card + android

중 하나가 작동하지 않는 것 같습니다. 나는 장치의 외부 데이터베이스를 보았고 아무 것도 없었다.

답변

1

Lucas Rochas smoothie library를 살펴보십시오. 이 라이브러리는 빠른 스크롤 그리드를 구현합니다. 내 재생 목록 관리자 (Google Play)에서 사용합니다. http://lucasr.org/2013/01/06/introducing-smoothie/

+0

해답을 가져 주셔서 감사합니다.하지만 제가 가지고있는 것은 꽤 어렵습니다. 그리드 뷰에 이미지를 출력해야하고 그 이미지를 촬영할 때 (StickyGridHeader) 날짜순으로 정렬해야하며이 이미지를 설정해야합니다. 이제 유니버설 이미지 로더를 사용하고 있지만 전체 이미지를로드합니다. 이것은 단지 내가 그것을 사용해야 할 필요가 있다고 말하는 것입니다, 슬프게도 저는 스무디가 그것을 할 수 없다는 것을 이해했습니다. – TheLibrarianCz

+0

이미지를로드하고 눈금에 맞게 크기를 조정하고 빠른 스크롤을 원하면 smoothie 라이브러리가이를 처리합니다. 정렬은 조회가 필요에 따라 정렬 된 커서를 제공해야하므로 표시와는 관련이 없습니다. – Theo