Android dual sketch problem

I create a custom gallery of images and videos, just like Whatsapp should allow a user to select multiple images / videos while I fill and show thumbnails on a gridview. But as a result, on some devices the images were sometimes shown duplicated, and on some - not. It also happens with a video gallery.

I am requesting an id of images from

 MediaStore.images 

and get thumbnails using

MediaStore.images.thumbnails.getThumbnail 

from received identifiers

below is my code

            final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
            final String orderBy = MediaStore.Images.Media.DATE_ADDED;
            imageCursor = activity.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,null, orderBy+" DESC");
            int image_column_index = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
            int count = imageCursor.getCount();
            thumbnails = new Bitmap[count];
            arrPath = new String[count];
            Log.d("count ", ""+count);
            int i=0;


            for ( i= 0; i <count; i++) 
            {
                imageCursor.moveToPosition(i);
                int id = imageCursor.getInt(image_column_index);
                int dataColumnIndex = imageCursor.getColumnIndex(MediaStore.Images.Media._ID);
                thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(context.getContentResolver(), id,MediaStore.Images.Thumbnails.MICRO_KIND, null);
                arrPath[i]= imageCursor.getString(dataColumnIndex);
            }

from the android documentation getThumbnail should create a sketch if it is not available.

, ​​ , - MediaStore.Images.Thumbnails.getThumbnail NULL, ( 2 ).

- , , asynctask, thubnails OS Adroid, . , ? .

+4
1

, , . uri, . ThumbnailUtils.createVideoThumbnail() . - :

Bitmap bitmap = Thumbnails.getThumbnail(mActivity.getContentResolver(), videoFile.mId,
                                        Thumbnails.MINI_KIND, null);
if (bitmap == null) {
   ThumbnailUtils.createVideoThumbnail(videoFile.mAbsolutePath, Thumbnails.MINI_KIND);
}

.

+1

Source: https://habr.com/ru/post/1545461/


All Articles