android二进制显示图片

最佳碰到一个项目,需要网络请求显示图片,发现返回的字段是String类型的二进制,需要把这个字段转化成bitmap类型,然后显示出来


返回的json字段:

{
    "StrPlusKey": null,
    "Success": true,
    "Data": [
        {
            "id": 8,
            "ZCID": "000002",
            "Photo": "/9j/4AAQSkZJRgABAQAASABIAAD/....(此处略去很多字)..FTH7zfSoew+lA0RvwDj1qReg+n9ajfofrUi9B9P60FH//2Q==",
            "Class": null,
            "Type": null
        }
    ],
    "Error": null,
    "SrvCls": "FixedAssetsServer.Controller.FixedAssetsController",
    "SrvFunc": "getPhoto"
}



json解析:这个result就是网络请求的json

try {
JSONObject jsonObject = new JSONObject(result);
JSONArray resultJsonArray = jsonObject.getJSONArray("Data");
JSONObject resultJsonObject = resultJsonArray.getJSONObject(0);
String output = resultJsonObject.getString("Photo");
Log.e("TAG", "try_a--" + output);
convertStringToIcon(output);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


核心代码是:

public Bitmap convertStringToIcon(String output) {
// OutputStream out;
Bitmap bitmap = null;
try {
byte[] bitmapArray;
bitmapArray = Base64.decode(output, Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0,
bitmapArray.length);
// bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Log.e("TAG", "try_b--" + bitmap);
show_image.setImageBitmap(bitmap);
return bitmap;
} catch (Exception e) {
return null;
}
}


运行结果(这个test_b返回的就是标准的bitmap):

08-30 17:35:40.648: E/TAG(5630): try_b--android.graphics.Bitmap@3775f183


看到这里就结束了,代码就是这样,可以直接运行



你可能感兴趣的:(android,学习)