关闭

android二进制显示图片

标签: android
191人阅读 评论(0) 收藏 举报
分类:

最佳碰到一个项目,需要网络请求显示图片,发现返回的字段是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


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



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5001次
    • 积分:197
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类