4

「アイコン」の文字列をバイト配列に変換し、ビットマップに変換したい。問題は、エミュレーターの画像が表示されないことです。私は正しいことをしていないと思いますが、その理由はわかっています。ご協力をお願いいたします。前もって感謝します

これは私の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);
4

3 に答える 3

17

文字列から、Base64icon を使用して画像を文字列に変換したようです。したがって、Base64自体を使用してバイトに戻す必要があります

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

お役に立てれば...

于 2013-05-20T11:43:29.053 に答える
3

base64 stringをにデコードするにはbyte[]:

byte[] imgBytes = Base64.decode(strBase64.getBytes());

に変換するbyte[]にはBitmap:

Bitmap bitmap = BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.length)

bitmap画像のsetImageBitmapメソッドを使用して、出力を表示します。例えば:

icon.setImageBitmap(bitmap);
于 2013-05-20T11:44:18.453 に答える
2

アイコンは Base64 でエンコードされています。Base64 クラスを使用してデコードしてください。

于 2013-05-20T11:43:56.087 に答える