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 / 9
번호 제목 글쓴이 날짜 조회 수
공지

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

| ETC 6
MFam 2010-11-03 47516
95

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

| Android 1
MFam 2016-07-05 167
94

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

| Android
MFam 2016-07-05 140
93

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

| Android
MFam 2016-05-26 118
92

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

| Android
MFam 2016-05-23 106
91

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

| Android
  • file
MFam 2016-05-19 129
90

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

| Android
MFam 2014-10-23 307
89

서비스(Service) 와 관련된 내용

| Android
MFam 2013-05-21 535
88

EditText 바이트 길이로 글자수 제한 InputFilter 활용

| Android 2
MFam 2013-01-09 858
87

SQLite 의 기본 기능들과 이해

| Android
MFam 2012-12-10 1388
86

PackageName으로 App 설치 여부 확인, 설치된 App의 PackageName List 뽑아내기

| Android
MFam 2012-11-07 724
85

해상도별 스크린 레이아웃

| Android 1
MFam 2012-10-24 1270