我正在尝试将我的手机联系人详细信息(如姓名,电子邮件,地址和照片)发布到json fromat中的网络服务器,其中图像以Base64格式编码。在服务器端,图像作为BLOB类型存储在数据库中。我正试图在列表视图中检索并显示服务器中的所有数据。我能够显示除图像之外的所有数据。
以下是代码:
对于图像编码:
ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY, byteArrayBitmapStream);
byte[] b = byteArrayBitmapStream.toByteArray();
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
jsonObject.accumulate("imageData",encodedImage);
用于解码图像:
String image=(String)jsonObject.get("image");
byte[] byteArray = Base64.decode(jsonObject.getString("imageData").getBytes(), Base64.DEFAULT) ;
Bitmap bmp1 = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(TAG_IMAGE,bmp1);
请帮我在listview中显示图片。谢谢......
错误日志:
12-16 12:07:58.403: E/BitmapFactory(1072): Unable to decode stream: java.io.FileNotFoundException: /android.graphics.Bitmap@40f67ac0: open failed: ENOENT (No such file or directory)
12-16 12:07:58.423: I/System.out(1072): resolveUri failed on bad bitmap uri: android.graphics.Bitmap@40f67ac0
答案 0 :(得分:1)
我认为你应该使用Universal Image Loader for Android库。
这将为您显示所有复杂的内容,以便从具有许多自定义选项的Web服务器显示图像。
答案 1 :(得分:0)
我认为你应该下载lazy loader
这将是您从webserver
显示图像的所有复杂内容