我想将“icon”字符串转换为字节数组,而不是将其转换为Bitmap。问题是模拟器中的图像没有显示。我想我做得不对,但我知道为什么。非常感谢你的帮助。提前致谢
这是我的JSON数据:
{
"project": [
{
"abbreviation": "abd",
"customer": "customer1",
"description": "description1",
"icon": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC4UlEQVR42sXTXUhTYRgH8NNNXkTdmPlRpltqalgXZlB4hCC6C8VyYjErtbCoNLJiqQmOtqmYCkUXdhNEGSHYuVXCj81N58dcO+rOPt3c2dnOWTubeSPUv6PZx1U3XfTAj4f3gf/zXL0E8d+LoqgEw+RkvnnOWmi22H6Ytx4bHRtLSt2XSKhUqr8vkMKFYS5I8y5LhGemBYEx8xHPp3CICxpoevFcf3//LrVanaDRaBK0Wu0WnU632XdK8x3E1MxcSZR1Cez7ewgM1IEdqEWYasW6yCMajQqBQGDE5/N98Hq9lNvtppxOJ8UwDEXT9LuJiYmThMlkIuMxUVgXQ1KIw5doEGufOcRjMYiiiEgkAp7nwXEcWJaF3+/HysoKnC7XxtTUdA1hNBrJzUvx+Bpi8Thisbh0+XcwFAohyIUQYANS0A2P2wGXyw6GWdyYMo7VEXq9nuR5QSpeCnDgw0GEQ6x0MQA24MeqzwPvwhiWXzeD7q6CrecibL2XYO2s+DrzoGCEGNcbilmfk3e8fYSlXiWWn13F8vMaLD27gsU+JWydFbDcLcRsVTJmFEmYqdym2AuzcreDGNWbij02A79w/wTmlOmYqz74y6zypwzMVmdi9vIfqjNgrk0cJz5OmIoZI8Vb7kkLruVK8rblbpm/dhjz1yX1ObBsuvHD5tt8K3WQGB43FtPDr3hLYxEW6o/CWl8A280jWLydh+XGHDBNWXA+lMOpksHVnAlnSyYcrTLYW+SwtqS9kBZMkrahPoG+Uwh7w1G4m/LgV2Uh2CZDWJ0BQZOOSMd+RDpTIXSlgJdwnWlY7TjwjdGmtRFvBoeK9C9b7fMNx2J0U67oeHRI9D6WiavtcjH4JEvktBKdXJIusrpU0a9NFj2aFNHefiBsUGVcJk6fObunqbq0SF2aX6IpyyY7yrPIrvPZZHdFDtmjyCV7K/O3+lOFNFPIya4KGdlxQUa2l8lPlR9PS/nnz/gdnPcTQcpv7vgAAAAASUVORK5CYII=",
"name": "projectname1",
"plannedEndDate": "2012-05-25T00:00:00+01:00",
"plannedStartDate": "2012-05-23T00:00:00+01:00",
"projectStatus": {
"name": "Opened"
},
"realEndDate": "2012-05-25T00:00:00+01:00",
"realStartDate": "2012-05-23T00:00:00+01:00"
}
]
}
我是这样做的,但它不起作用:
// convert String to byte[]
String stringToConvert = project.getIcon();
byte[] theByteArray = stringToConvert.getBytes();
// convert Byte[] to Bitmap
Bitmap bm = BitmapFactory.decodeByteArray(theByteArray,
0, theByteArray.length);
DisplayMetrics dm = new DisplayMetrics();
holder.imageIcon.setMinimumHeight(dm.heightPixels);
holder.imageIcon.setMinimumWidth(dm.widthPixels);
holder.imageIcon.setImageBitmap(bm);
答案 0 :(得分:9)
在字符串icon
中,您似乎已使用 Base64 将图片转换为字符串。所以你必须使用Base64本身将它转换回字节
// Receiving side
byte[] data = Base64.decode(iconString, Base64.DEFAULT);
希望这会有所帮助......
答案 1 :(得分:2)
将您的 base64 string
解码为byte[]
:
byte[] imgBytes = Base64.decode(strBase64.getBytes());
将byte[]
转换为Bitmap
:
Bitmap bitmap = BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.length)
现在使用您的bitmap
和图片的 setImageBitmap 方法来显示输出。例如:
icon.setImageBitmap(bitmap);
答案 2 :(得分:1)
您的图标是Base64编码的,使用Base64 class对其进行解码。