2015-05-18 2 views
0

Я должен отобразить изображение, которое я получаю с сервера как json в ImageView. Но вместо URL изображения, я получаю много символов, как это ..Android, JFIF в json responseText - ImageView

����JFIF��C  

$.' ",#(7),01444'9=82<.342��C   

2!!22222222222222222222222222222222222222222222222222����"�� 
���}!1AQa"q2���#B��R��$3br� 
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz����� 

Я предполагаю, что это необработанные данные или JFIF изображений. Я искал stackoverflow, но мог найти только преобразование из base64 или отображение изображения с URL-адреса.

Как мне получить изображение и отобразить его в ImageView.

С уважением.

+0

Вы сообщаете нам, что BitmapFactory не может справиться с этим, если у вас это есть в массиве байтов? – greenapps

+0

Извините, я только имел в виду, что я не знаю, как это показать в ImageView. Я новичок в программировании и не знаю много о BitmapFactory и всех. Пожалуйста, будьте любезны, чтобы помочь мне. –

ответ

0

Мне не пришлось преобразовывать ответ в Base64. просто преобразовал его в растровое изображение и установил его в ImageView. Это был очень глупый вопрос из-за моего незнания. Надеюсь, мой код поможет кому-то в будущем

HttpClient httpClient = ServiceHelper.getHttpClient(); 
HttpContext localContext = new BasicHttpContext(); 
HttpGet httpGet = new HttpGet(RestApiPaths.GET_PROFILE_PICTURE); 
try { 
    HttpResponse response = httpClient.execute(httpGet); 
    int statusCode = response.getStatusLine().getStatusCode(); 
    final HttpEntity entity = response.getEntity(); 
    if (entity != null) { 
     InputStream inputStream = null; 
     try { 
      inputStream = entity.getContent(); 
      final Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
      imageView.setImageBitmap(emergencyCardPhoto); 
     } finally { 
      if (inputStream != null) { 
       inputStream.close(); 
      } 
      entity.consumeContent(); 
     } 
    } 
} 
catch(ClientProtocolException e){ 
    e.printStackTrace(); 
} 
catch (IOException e){ 
    e.printStackTrace(); 
} 
+0

Ну, это было не изображение, содержащееся в ответе json, как вы сказали. Это был только сам образ. Хорошо, что вы нашли решение. – greenapps

+0

'Мне не нужно было преобразовывать ответ в Base64.'. Нет. Вы ответили: ответ не был закодирован base64, поэтому мне не пришлось сначала base64 декодировать ответ на массив байтов. – greenapps

+0

'imageView.setImageBitmap (emergencyCardPhoto); '. Как это возможно в середине интернет-кода? Вы не используете какие-либо утверждения 'StrictMode'? Похоже, вы это делаете. Избавьтесь от них и поместите свой код в AsyncTask или поток. – greenapps

Смежные вопросы