Я пытаюсь загрузить изображение и декодировать его в растровое изображение с помощью BitmapFactory, но decodeStream всегда возвращает значение null. Я гуглил много подобных вопросов, пробовал много примеров, но не нашел решения.
Вот мой код:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void downloadButton(View v)
{
String imageUrl = "http://www.picgifs.com/bird-graphics/bird-graphics/elf-owl/bird-graphics-elf-owl-527150.bmp";
new Thread(new ImageDownloader(imageUrl)).start();
}
public void showImageButton(View v)
{
Bitmap image = ImageHandler.getImage();
if (image == null)
Log.e("Error", "No image available");
else {
ImageView imageView = (ImageView)findViewById(R.id.ImageView);
imageView.setImageBitmap(image);
}
}
}
class ImageHandler
{
static protected List<Bitmap> imagesList;
static public void addImage(Bitmap image)
{
imagesList.add(image);
}
static public Bitmap getImage()
{
if (!imagesList.isEmpty())
return imagesList.get(0);
else
return null;
}
}
class ImageDownloader implements Runnable
{
public Bitmap bmpImage;
private String urlString;
public ImageDownloader(String urlString)
{
this.urlString = urlString;
}
public void run()
{
try
{
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
HttpGet getRequest = new HttpGet(urlString);
HttpResponse response = client.execute(getRequest);
HttpEntity entity = response.getEntity();
InputStream inputStream = null;
inputStream = (new BufferedHttpEntity(entity)).getContent();
bmpImage = BitmapFactory.decodeStream(inputStream);
//bmpImage = BitmapFactory.decodeStream(new URL(urlString).openConnection().getInputStream());
}
catch (Exception e)
{
Log.e("ImageDownloadError", e.toString());
return;
}
if (bmpImage != null)
{
ImageHandler.addImage(bmpImage);
Log.i("Info", "Image download successfully");
}
else
Log.e("Error", "Bitmap is null");
}
}
p.s showImageButton
кидает IllegalStateException
, а мне уже надоело.
.bmp
... РЕДАКТИРОВАТЬ: возможно, ответ на этот вопрос может помочь здесь stackoverflow.com/questions/5886583/ - person cyborg86pl   schedule 22.04.2014INTERNET
иACCESS_NETWORK_STATE
. - person user3551569   schedule 22.04.2014