У меня возникла похожая проблема, когда мне нужно было загрузить много картинок.Использовал Glide с кешем, но опять медленно.Кэш скольжения нестабилен, иногда он удаляет изображения и повторно загружает их.Поэтому я скачал все изображения в кеш вручную, затем загрузил их с помощью Glide.Это было намного быстрее.
Вот подсказки.
Загрузите изображения в cacheDir и сохраните их местоположение
public static String downloadFile(Activity activity, String fileURL, String fileName, String type) {
File folder = new File(activity.getCacheDir() + "/dg/");
folder.mkdirs();
String rootDir = folder.getAbsolutePath() + "/" + fileName;
try {
File rootFile = new File(rootDir);
if (rootFile.exists()) {
System.out.println("VIDEO/IMAGE EXISTS: " + fileName);
return rootDir;
}
URL url = new URL(fileURL);
HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
FileOutputStream outStream = new FileOutputStream(rootFile);
byte[] buff = new byte[5 * 1024];
//Read bytes (and store them) until there is nothing more to read(-1)
int len;
while ((len = inStream.read(buff)) != -1) {
outStream.write(buff, 0, len);
}
//clean up
outStream.flush();
outStream.close();
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return rootDir;
}
Затем загрузите их, используя ( GlideApp ) в заставке может быть?Или с нумерацией страниц.
GlideApp
.with(activity)
.load(new File(activity.getCacheDir() + "/dg/" + name))
.diskCacheStrategy(DiskCacheStrategy.DATA)
.into(imageView);