Android解码字符串基数64位图



嗨,伙计们,我想问你一件事,我有一个聊天传输字符串,我甚至可以在发送它们之前附加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);
    }

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

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

将图像编码为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();
    }
}

最新更新