Привет У меня есть приложение, которое загружает все изображения из папки на холсте, по вертикали.Как миниатюры.В этих папках обычно содержится более 20 изображений, около 1 МБ, иногда даже 2. Я создал класс Index, который расширяет canvas.
Мне удалось загрузить все изображения и изменить их размер до нужного размера (исходного размера).около 1280x1985, да, они довольно большие. Но это занимает слишком много времени, и я думаю, я знаю, почему, но я не знаю, как это исправить или сделать лучше.
public void loadImages(){
System.out.println("Loading Images");
List<String> imageList = new ArrayList<String>();
imageList = listDirImages(this.strDir);
int listSize=imageList.size();
for(int i=0;i<listSize;i++){
System.out.println(imageList.get(i));
Image sourceImage;
System.out.println(strDir.concat("/".concat(imageList.get(i))));
try {
sourceImage = new Image(getDisplay(),strDir.concat("/".concat(imageList.get(i))));
//sourceImage[i] = new Image(getDisplay(),strDir.concat("/".concat(lsImagenes.get(i))));
}catch(Exception e){
System.out.println(e);
//band=1;
}
}
}
Эта функция использует каталог, затемон вызывает функцию для перечисления всех изображений. Он перечисляет все изображения. Исходный код был другим, но я попытался исключить код, чтобы увидеть, где он занимает так долго. Исходный sourceImage был массив изображений (я не знаю, еслиэто лучше), и я изменил размеры изображений, создав новые, но их создание заняло больше времени.
с 25 изображениями для загрузки этой части требуется почти 45 секунд, я знаю, проблема в том, что я загружаюполное изображение, и они довольно тяжелые. Есть ли способ загрузить их непосредственно в миниатюру? Некоторые папки имеют около 80 страниц, то естькак 2 минуты(С одной стороны, я думаю, что мне нужно это как поток, чтобы вся программа могла запускать другие вещи во время загрузки индекса.