У меня есть базовый класс загрузчика , где я загружаю и декодирую растровое изображение. , но если я попытаюсь декодировать этот класс, я получаю свой bitmap = null.потеря данных в классах
public void add_item(String _txt, String _url) {
try {
Downloader dw = new Downloader(_url, context);
InputStream s = dw.execute().get();
Bitmap b = BitmapFactory.decodeStream(s); // <<<<<< bitmap is null
bmp.add(b);
} catch (ExecutionException e) { Toast.makeText(this.context, "Ошибка загрузки картинки", Toast.LENGTH_SHORT).show(); }
catch (InterruptedException e) { Toast.makeText(this.context, "Ошибка загрузки картинки", Toast.LENGTH_SHORT).show(); }
}
downloader.java
package com.example.john.weather;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Downloader extends AsyncTask<Void, Void, InputStream> {
String url;
Context mContext;
public Downloader(String _url, Context _context){
this.url = _url;
this.mContext = _context;
}
@Override
protected InputStream doInBackground(Void... params) {
InputStream s;
try{
s = download(this.url);
//Bitmap b = BitmapFactory.decodeStream(s); // <<<<<< Bitmap is good
return s;
}
catch (MalformedURLException e) {
Toast.makeText(mContext, "Ошибка загрузки "+url, Toast.LENGTH_SHORT).show();
return null; }
catch (IOException e){
Toast.makeText(mContext, "Ошибка загрузки "+url, Toast.LENGTH_SHORT).show();
return null;
}
}
private InputStream download(String url) throws IOException {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.connect();
InputStream input = connection.getInputStream();
return input;
}
}
У меня есть базовый класс загрузчик , где я могу скачать и декодирования растрового изображения, а также. , но если я попытаюсь декодировать этот класс, я получаю свой bitmap = null.
как вы декодируете из этого класса? – eldjon
Bitmap b = BitmapFactory.decodeStream (s); – user3017844