android解码字符串base 64到位图

时间:2013-06-05 16:29:53

标签: android image bitmap bluetooth decode

大家好我想问你一件事,我有一个转移字符串的聊天,我甚至可以附加JPEG图像,然后发送它们将其转换为字符串,然后在BITMAP中解码只是当我解码时崩溃了应用程序。我想知道解码它是否是正确的代码。

            NOME = (TextView) row.findViewById(R.id.comment);
    NOME.setText(coment.comment);
    String a = NOME.getText().toString();

    if(a.length() > 1024 )
    {
        byte[] image = Base64.decode(a, 0);
        int lung = a.length();
        Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, lung);


        Image = (ImageView) row.findViewById(R.id.image);
        Image.setImageBitmap(bitmap);

    }

2 个答案:

答案 0 :(得分:0)

代码看起来很好,如果我不得不猜我会说你得到内存不足的错误,这在加载图片时很常见。看看

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

了解加载图片时的一些最佳做法。

答案 1 :(得分:0)

将图像编码为字符串Base64的方法

public static String encodeToString() {
    String imageString = null;

    try {
        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object   
        byte[] b = baos.toByteArray();
        imageString = Base64.encodeToString(b, Base64.DEFAULT);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return imageString;
}

将字符串Base64解码为图像的方法:

public static void decodeToImage(String imageString) {

    try {
        byte[] imageByte = Base64.decode(imageString, Base64.DEFAULT);
        Bitmap bm = BitmapFactory.decodeByteArray(imageByte, 0, imageByte.length); 
        image_view.setImageBitmap(bm);
    } catch (Exception e) {
        e.printStackTrace();
    }
}