Gallery应用如何快速加载图像和视频?

时间:2018-01-21 13:08:47

标签: android image performance video loading

我正在尝试加载用户设备上的所有图像和视频,但问题是在某些设备上加载非常慢并且需要一些时间。如果手机同时运行多个应用程序,则加载速度也会进一步降低。而预装的图库应用程序以更快的速度(始终)加载图像和视频。

这就是我加载图像和视频的方式 -

public void getImages(Context context) {

        File Image_File;
        final String[] columns = {MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID};

        String orderBy = MediaStore.Images.Media.DATE_MODIFIED ;

        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,
                null, orderBy);

        if (cursor != null)
        {
            cursor.moveToFirst();
            final int dataColumnIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);

            while (cursor.moveToNext()) 
             {
                Image_File = new File(cursor.getString(dataColumnIndex));
                            images.add(0,Image_File);

              }
         }
}

    public void getVideos(Context context) {

        File Video_File;

        final String[] columns = { MediaStore.Video.Media.DATA, MediaStore.Video.Media._ID };
        String orderBy =  MediaStore.Video.Media.DATE_MODIFIED;

        Cursor cursor = context.getContentResolver().query(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI, columns, null,
                null, orderBy);

        if (cursor!=null)
        {
            cursor.moveToFirst();

            final int dataColumnIndex = cursor.getColumnIndex(MediaStore.Video.Media.DATA);

            while (cursor.moveToNext()) {
                Video_File = new File(cursor.getString(dataColumnIndex));

                            videos.add(0,Video_File);

            }
        }
    }

关于如何提高加载速度的任何建议或任何有关如何提高此代码效率的建议都将非常感激和感激

2 个答案:

答案 0 :(得分:2)

考虑使用CursorLoader运行查询,以防止阻止UI线程并获取实时更新。我认为对this question的回答可能对你有用。

答案 1 :(得分:2)

我做过这种项目。检查链接将使您受益匪浅:

https://github.com/andriyadi/AndroidMediaChooser