Как преобразовать двоичную строку в изображение в Android?

Я использую веб-сервисы .net ksoap и получаю в ответ двоичную строку. Я хочу преобразовать эту строку в изображение и хочу отобразить это изображение в ImageView. Я получаю изображения/doc/pdf с сервера.

Мой код:

SoapObject DocumentRequest = new SoapObject(NAMESPACE, GET_DOCUMENT_METHOD);

        DocumentRequest.addProperty("DocumentID", ID);
        Log.i("DocumentID", ID);

        SoapSerializationEnvelope Envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        Envelope.dotNet = true;
        Envelope.setOutputSoapObject(DocumentRequest);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        androidHttpTransport.debug = true;

        androidHttpTransport.call(SOAP_ACTION_GETDOCUMENT, Envelope);

        SoapPrimitive DocumentResponse = (SoapPrimitive)Envelope.getResponse();
        Log.i("DocumentResponse", DocumentResponse.toString());

Что я должен использовать для отображения любого типа файла image/doc/pdf. Как преобразовать эту двоичную строку в правильный формат и как ее скачать??? Я так растерялся.

// Является ли растровое изображение хорошей идеей?

этот код дает мне ответ в двоичном формате в журнале. Я хочу преобразовать это в файл изображения / документа / файл PDF и хочу загрузить его на локальную SD-карту.

POST /**********Mobile/**********.asmx HTTP/1.1
Host: 192.168.1.5
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/GetDocument"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
xmlns:xsd="http://www.w3.org/2001/XMLSchema"    
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
 <GetDocument xmlns="http://tempuri.org/">
   <DocumentID>string</DocumentID>
 </GetDocument>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
   <GetDocumentResponse xmlns="http://tempuri.org/">
     <GetDocumentResult>string</GetDocumentResult>
   </GetDocumentResponse>
 </soap:Body>
</soap:Envelope>

Пожалуйстапредлагайте спасибо


person Shweta    schedule 15.03.2013    source источник


Ответы (1)


В идеале вы могли бы получить от API ссылку на документ/изображение, а затем загрузить его позже.

Наличие двоичных данных в ответе не только усложняет ваш код, но и усложняет синтаксический анализ.

Обновление: преобразовать двоичную строку в файл так же просто, как прочитать данные и записать их в файл.

Я предложил не использовать этот подход в первой части моего ответа.

person Kumar Bibek    schedule 15.03.2013
comment
Извините, я не понимаю. Не могли бы вы сообщить мне, как преобразовать двоичную строку в изображение в Android? - person Shweta; 15.03.2013
comment
хорошо, так что делать? У меня также есть base64binary String, это хорошо? - person Shweta; 15.03.2013
comment
Ой. Вы не упомянули об этом. Для этого декодируйте двоичную строку с помощью Base64 и запишите полученную строку в файл. Вы сделали. - person Kumar Bibek; 15.03.2013
comment
хорошо, значит, вы имеете в виду, что подход base64 лучше, чем двоичная строка? Верно? - person Shweta; 15.03.2013
comment
Не могли бы вы написать для меня пример кода, я понял вашу точку зрения, но я запутался в написании кода. как создать файл? - person Shweta; 15.03.2013