【问题标题】:How to convert Binary String into image in Android?如何在Android中将二进制字符串转换为图像?
【发布时间】:2013-03-15 10:32:58
【问题描述】:

我正在使用 .net Web 服务 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。如何将此二进制字符串转换为正确的格式以及如何下载它???我很困惑。

//位图是个好主意吗?

此代码在日志中以二进制形式给我响应。我想把它转换成 Image/doc 文件/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>

请多多指教

【问题讨论】:

    标签: android binary inputstream bitmapfactory


    【解决方案1】:

    理想情况下,您可以让 API 向您返回文档/图像的链接,然后您就可以下载它。

    在响应中包含二进制数据,不仅会使您的代码复杂,而且还会使您进行解析。

    更新: 将二进制字符串转换为文件,就像读取数据并将其写入文件一样简单。

    我建议,不要在我的回复的第一部分使用这种方法。

    【讨论】:

    • 对不起,我不明白。你能告诉我如何在android中将二进制字符串转换为图像吗?
    • 好的,那该怎么办?我也有base64binary String,好用吗?
    • 哦。你没有提到那个。为此,使用 Base64 解码二进制字符串,并将生成的字符串写入文件。你完成了。
    • 好的,所以你的意思是 base64 方法比二进制字符串更好?对吗?
    • 你能帮我写一个代码示例吗,我明白你的意思,但我在写代码时很困惑。如何创建文件?
    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2013-02-11
    • 2012-05-23
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2012-01-06
    相关资源
    最近更新 更多