【问题标题】:Android - Convert String to byte[]Android - 将字符串转换为字节[]
【发布时间】:2013-05-14 23:06:48
【问题描述】:

我想将“icon”字符串转换为字节数组,而不是将其转换为位图。问题是模拟器中的图像没有显示。我想我做得不对,但我知道为什么。非常感谢您的帮助。提前致谢

这是我的 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);

【问题讨论】:

    标签: android bitmap bytearray


    【解决方案1】:

    从字符串icon 看来,您已经使用Base64 将图像转换为字符串。所以你必须使用 Base64 本身将它转换回字节

    // Receiving side
    byte[] data = Base64.decode(iconString, Base64.DEFAULT);
    

    希望这会有所帮助...

    【讨论】:

      【解决方案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);
      

      【讨论】:

      • 非常感谢,但我必须这样做它像你说的那样做时出错:byte[] imgBytes = Base64.decode(strBase64.getBytes(), Base64.DEFAULT );
      【解决方案3】:

      您的图标是 Base64 编码的,请使用 Base64 class 对其进行解码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-10
        • 1970-01-01
        • 2022-01-18
        • 2014-03-09
        相关资源
        最近更新 更多