в моем приложении Я загружаю изображения, получаемые с URL-адреса. Проблема здесь в том, что она занимает слишком много времени. Изображения сжаты и всего 9 км. Я загружаю 50 из них, так что скажем, 500kByte изображений загружаются приложением. Это должно быть довольно быстро, не так ли? Ну, это не так. Я иногда теряю 20 секунд, пока не загрузится. Что там так долго? У меня довольно простой способ загрузки изображений. ЗдесьУскорьте время загрузки изображения
int downloadingImages = getDownloadImageCount();
System.out.println(downloadingImages);
if(downloadingImages == 0){
for(int c = downloadingImages; c < 50; c++){
try{
bitmapArr[c] = getBitmapFromURL(imageURLArr[c]);
setDownloadImageCount(50);
publishProgress(c);
} catch (FileNotFoundException f1){
Log.v("FileNotFoundException", "Bitmap konnte nicht geladen werden");
} catch(NullPointerException e){
} catch (IllegalStateException ie){
}
setDownloadImageCount(50);
}
}
Это функция getBitmapFromUrl
public static Bitmap getBitmapFromURL(String src) throws FileNotFoundException {
try {
//Downloading the image
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
try{
//Saving the image to a bitmap and return it
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
//Catch Exception if file not found
} catch(FileNotFoundException ffe){
Log.v("FileNotFoundException", "getBitmapFromURLMethod");
return null;
}
//Catch Exception if error at input and output
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
Я имею в виду, что это так долго там? Как увеличить скорость. Я буду использовать cahing для изображений позже, но все же ... Я имею в виду, что это 500 килобайт и занимает так много времени. Почему это?
не пытайтесь изобретать велосипед: http://square.github.io/picasso/ – Budius
Поместите временную метку как длинную на несколько строк. Это может рассказать вам, что происходит слишком долго. Соединение с сервером также требует много времени. Поэтому убедитесь, что установление соединения занимает время или загрузка. –
Вы также можете использовать универсальный загрузчик изображений: https://github.com/nostra13/Android-Universal-Image-Loader –