【问题标题】:How to get image from java webservice on Android如何从 Android 上的 java webservice 获取图像
【发布时间】:2014-09-12 10:32:57
【问题描述】:
我有一个 Java (JAX-RS) 网络服务,它将图像存储在 mysql blob 中。
使用 GET 请求获取带有图像的 JSON 或 XML。
[{"id":1,"imagen":"iVBORw0KGgoAAAANSUhEUgAAAKAAAABfCAYAAABvC8zhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAGO5JRE ...etc
我的问题是:
在我的 android 应用程序中获取该 JSON 并将文本存储为变量是一个好主意吗?如何从该文本创建位图?会不会很慢?
谢谢
【问题讨论】:
标签:
java
android
mysql
json
web-services
【解决方案1】:
您的问题的第一个答案是:绝对是的。与 XML 相比,JSON 是一种更好的数据获取方式。
其次,从您的 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);
}