У меня есть приложение для Android, над которым я работаю, которое загружает изображение с сервера, считывает его в растровое изображение и отображает его в ImageView
Это прекрасно работает большую часть времени, но время от времени, он проходит через процесс (есть ProgressDialog, говорящий «Извлечение изображения ...»), и после его выполнения ничего не отображается.В logcat не было ничего, что, казалось бы, даже отдаленно относится к этому.
Вот код:
Bitmap image = null;
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(webService + "?cmd=get");
try
{
HttpResponse resp = client.execute(get);
Log.i("PhotoRouletteDebug", "Resp buffer size: " + (int)resp.getEntity().getContentLength());
InputStream is = resp.getEntity().getContent();
BufferedInputStream buf = new BufferedInputStream(is, (int)resp.getEntity().getContentLength());
image = BitmapFactory.decodeStream(buf);
// clean up
buf.close();
is.close();
Даже когда ничего не отображается, длина содержимого Resp всегда сообщаетправильный размер, но все равно ничего не отображается.
Этот код вызывается из AsyncTask, но одновременно вызывается только 1 задача.
Это сводит меня с ума, у меня естьпонятия не имею, почему это продолжает делать это.
Редактировать: вот код, который устанавливает imageView
// AsyncTask for Getting a new image from the queue
protected class GetImageTask extends AsyncTask<String, String, Bitmap>
{
protected void onPreExecute()
{
// lets show a progress dialog so the user knows something is going on
progressDialog = ProgressDialog.show(PhotoRoulette.this, "", "Fetching image...", true);
}
protected void onPostExecute (Bitmap image)
{
// we got a new photo so lets display it where it needs to be displayed
try
{
photoView = (ImageView)findViewById(R.id.photoView);
photoView.setImageBitmap(image);
}
catch (Exception e)
{
Log.e("Debug", "Something absolutely retarded happened", e);
}
// hide the progress dialog - we're all done
progressDialog.dismiss();
}
protected Bitmap doInBackground(String... urls)
{
// Get a new Bitmap Queue Image
Bitmap image = imageHandler.getQueueImage();
return image;
}
}