用于将base64字符串转换为位图的Android代码

Ami*_*per 11 base64 camera android

嗨stackoverflow团队我有一个问题,将base64字符串转换为android中的位图.我正在使用相机来获取图像,我将图像转换为base64字符串以发布到服务器.我想在imageview中显示该图像,以便在从相机中获取图像后如何在ImageView中显示图像.请帮我解决问题.

Tuo*_*asR 21

假设您的图像数据位于名为myImageData的String中,以下应该可以解决这个问题:

    byte[] imageAsBytes = Base64.decode(myImageData.getBytes(), Base64.DEFAULT);
    ImageView image = (ImageView)this.findViewById(R.id.ImageView);
    image.setImageBitmap(
            BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
    );
Run Code Online (Sandbox Code Playgroud)

对于Base64解码,您可以使用http://iharder.sourceforge.net/current/java/base64/,因为Android在2.2之前不包含Base64支持.

注意,我实际上并没有运行此代码,因此您必须双重检查错误.

  • 这也适用于base64编码的png吗? (3认同)

Apq*_*pqu 8

编辑:接受的帖子现已更新,以复制我的答案,或者是正确的

至少在JellyBean,KitKat或Lollipop中,接受的答案是不正确的.您应该使用以下适用于JPEG,PNG或GIF图像的内容.

byte[] imageAsBytes = Base64.decode(myImageData.getBytes(), Base64.DEFAULT);
ImageView image = (ImageView)this.findViewById(R.id.ImageView);
image.setImageBitmap(
        BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
Run Code Online (Sandbox Code Playgroud)

  • @AshesToAshes现在他们已经更新了他们复制我的答案(http://stackoverflow.com/posts/3801881/revisions) (2认同)