Ошибка загрузки ImageView из InputStream, полученного от веб-сервиса в Android 3.0 и выше - PullRequest
3 голосов
/ 31 марта 2012

Мое приложение должно отображать предварительный просмотр изображения из данных изображения, полученных как InputStream от веб-службы. InputStream декодируется в Bitmap для отображения в ImageView. Весь этот поток работает нормально в Android 2.2 и 2.3, тогда как он не работает с Android 3.0 и 4.0. В последнем случае декодированное растровое изображение является нулевым, а в 2.x - штрафом.

Вот фрагмент кода, который я использую ..

ImageView imgView = (ImageView) findViewById(R.id.image);       
String imageUrl = "my webservice url";      
HttpClient httpClient = new DefaultHttpClient();
HttpGet mHttpGetEntity = new HttpGet(imageUrl);
HttpResponse response;
try {
    response = httpClient.execute(mHttpGetEntity);
    XmlPullParser xpp = XmlPullParserFactory.newInstance().newPullParser();       
    InputStream is = response.getEntity().getContent();
    xpp.setInput(is, "UTF-8");
    // use xpp for process
    imgView.setImageBitmap(BitmapFactory.decodeStream(is));        
} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Как я могу заставить это работать даже с Android 3.0 выше. Пожалуйста, совет.

1 Ответ

2 голосов
/ 31 марта 2012

Ваш код отлично работает на моем 4.0. Я бы сказал, что не беспокойтесь о 3.0, так как это нестабильная версия, никто не будет ее использовать.

...