如何从Android上的Java Web服务获取图像

时间:2014-09-12 10:32:57

标签: java android mysql json web-services

我有一个Java(JAX-RS)Web服务,它将图像存储在mysql blob中。 使用GET请求获取带有图像的JSON或XML。

[{"id":1,"imagen":"iVBORw0KGgoAAAANSUhEUgAAAKAAAABfCAYAAABvC8zhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAGO5JRE ...etc

我的问题是: 在我的Android应用程序中获取JSON并将文本存储为变量是一个好主意吗?我怎么能从该文本创建位图?它会非常慢吗? 感谢

1 个答案:

答案 0 :(得分:1)

你问题的第一个答案是:绝对是的。 JSON是将数据与XML进行比较的更好方法。

其次,从您的JSON String开始,图像似乎是Base64编码的。因此解析JSON并解码Base64 String以使用Bitmap来获取图像BitmapFactory

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

解析JSON:

JSONArray jsonArray = new JSONArray(response);
for(int i=0;i<jsonArray.length;i++){
   JSONObject jsonObj = jsonArray.getJSONObject(i);
   String id = jsonObj.getString("id");
   String encodedString = jsonObj.getString("imagen");
   Log.i("DATA","Id: "+id);
}