У меня возникла проблема с загрузкой изображений PNG с моего сервера в приложение для Android. Проблема характерна для изображений PNG (JPG работает нормально), и проблема в том, что загруженные файлы являются поврежденными изображениями. Я объясню более подробно, ниже.
Сценарий:
Мне нужно загрузить изображения JPG и PNG с моего сервера и отобразить их пользователю приложения Android.
Проблема:
Изображения JPG загружаются без проблем. Но загруженные файлы PNG повреждены. Я дважды проверил источник изображений на моем сервере, и они правильные. Повреждены только загруженные файлы PNG. Итак, проблема, вероятно, заключается в том, как я загружаю их в Android.
Пример кода:
URL imageURL;
File imageFile = null;
InputStream is = null;
FileOutputStream fos = null;
byte[] b = new byte[1024];
try {
// get the input stream and pass to file output stream
imageURL = new URL(image.getServerPath());
imageFile = new File(context.getExternalFilesDir(null), image.getLocalPath());
fos = new FileOutputStream(imageFile);
// get the input stream and pass to file output stream
is = imageURL.openConnection().getInputStream();
// also tried but gave same results :
// is = imageURL.openStream();
while(is.read(b) != -1)
fos.write(b);
} catch (FileNotFoundException e) {
} catch (MalformedURLException e) {
} catch (IOException e) {
} finally {
// close the streams
try {
if(fos != null)
fos.close();
if(is != null)
is.close();
} catch(IOException e){
}
}
Любые указатели на то, как я могу работать над этим, будут очень признательны.
Примечание .
Поскольку это происходит в сервисе, внутри AsyncTask это не проблема.
Exceptions
, чтобы идти дальше, что там случилось не так. - person Maveňツ   schedule 04.03.2015