private static final String[] projectionPhotos = {
            MediaStore.Images.Media._ID,
            MediaStore.Images.Media.BUCKET_ID,
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
            MediaStore.Images.Media.DATA,
            MediaStore.Images.Media.DATE_TAKEN,
            MediaStore.Images.Media.MIME_TYPE
    };

public void loadGalleryPhotos() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                final ArrayList<AlbumEntry> albumsSorted = new ArrayList<>();
                HashMap<Integer, AlbumEntry> albums = new HashMap<>();
                AlbumEntry allPhotosAlbum = null;
                String cameraFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath() + "/" + "Camera/";

                Cursor cursor = null;

                try {
                    cursor = MediaStore.Images.Media.query(mContext.getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projectionPhotos, "", null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
                    if (cursor != null) {
                        int imageIdColumn = cursor.getColumnIndex(MediaStore.Images.Media._ID);
                        int bucketIdColumn = cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_ID);
                        int bucketNameColumn = cursor.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
                        int dataColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
                        int dateColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN);
                        int mimeType = cursor.getColumnIndex(MediaStore.Images.Media.MIME_TYPE);

                        while (cursor.moveToNext()) {
                            int imageId = cursor.getInt(imageIdColumn);
                            int bucketId = cursor.getInt(bucketIdColumn);
                            String bucketName = cursor.getString(bucketNameColumn);
                            String path = cursor.getString(dataColumn);
                            long dateTaken = cursor.getLong(dateColumn);
                            String mimeTypeStr = cursor.getString(mimeType);

//                            Log.d("TEST", "mimeType : " + mimeTypeStr + " // path : " + path);
                            if (path == null || path.length() == 0 || mimeTypeStr.contains("gif")) { // gif 는 조회되지 않도록 추가
                                continue;
                            }

                            PhotoEntry photoEntry = new PhotoEntry(bucketId, imageId, dateTaken, path);

                            if (allPhotosAlbum == null) {
                                allPhotosAlbum = new AlbumEntry(0, "All Photos", photoEntry);
                                albumsSorted.add(0, allPhotosAlbum);
                            }

                            allPhotosAlbum.addPhoto(photoEntry);

                            AlbumEntry albumEntry = albums.get(bucketId);
                            if (albumEntry == null) {
                                albumEntry = new AlbumEntry(bucketId, bucketName, photoEntry);
                                albums.put(bucketId, albumEntry);

                                albumsSorted.add(albumEntry);
                            }

                            albumEntry.addPhoto(photoEntry);
                        }
                        mContext.runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                listener.onLoadFinished(albumsSorted);
                            }
                        });
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (cursor != null) {
                        try {
                            cursor.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }

            }
        }).start();
    }
where절에 mimeType 이 image/gif 면 제외하든가... 일단 로그보기 위해서...


0 댓글

댓글 쓰기

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)

목록

Page 1 / 24
번호 제목 글쓴이 날짜 조회 수
공지

http://www.MFamStory.com 입니다.

| ETC 6
MFam 2010-11-03 47604
257

Android Studio로 작업하면서 새로이 사용했던 Lib들 간략 소개

| Android 1
MFam 2016-07-05 206
256

Android Media Database에서 image 조회할 때 gif 제외...

| Android
MFam 2016-07-05 173
255

openGL 2.0 Bitmap Load 실패하는 경우, 하드웨어 가속 끄기

| Android
MFam 2016-05-26 161
254

Volley, Retrofit 비교. 어떤거 사용할까 고민중

| Android
MFam 2016-05-23 152
253

2016년 5월 19일자 구글 로그인 구현(Google Login)

| Android
  • file
MFam 2016-05-19 175
252

Proguard 설정하기

| ETC
MFam 2014-12-29 217
251

안드로이드/Android 루팅 여부 확인 하기

| Android
MFam 2014-10-23 345
250

윈도우 Eclipse에서 MS949로 작업하다 mac 으로 프로젝트를 넘겼을 경우 한글 인코딩 해결 방안

| ETC
MFam 2013-12-03 433
249

Libgdx 와 Robovm 을 이용한 iOS 포팅

| ETC
MFam 2013-10-24 419
248

JAVA InputStream , OutputStream 종류와 각각의 특징

| JAVA
MFam 2013-07-03 684
247

HTTP Status Code(HTTP 1.1 : RFC 2616)

| ETC
MFam 2013-07-02 433