Android/ImageButton如何显示二进制字符流的图片

发布时间 2023-09-15 14:08:42作者: 小小邪

今天做获取用户接口信息,结构如下所示(UserIcon的值只是部分,不可用),有返回用户图片的信息(二进制),需要在页面显示,这里做下笔记

{
    "UserCode":"admin",
    "UserName":"管理员",
    "UserIcon":"iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAUCklEQVR4nO2da5RdZX3Gf88+l8kkk2SSyd0"
}

1)直接在控件设置图片来源

 <ImageButton
                        android:id="@+id/img_in_pack_user_icon"
                        android:layout_width="80dp"
                        android:layout_height="120dp"
                        android:background="@color/colorWhite"
                        android:src="@drawable/icon_un_login128"
                        android:scaleType="fitCenter"
                        />

2)通过后台动态设置图片来源(安卓图片资源)

 ImageButton imgUserIcon = findViewById(R.id.img_in_pack_user_icon);
 imgUserIcon.setImageResource(R.drawable.icon_male_doctor128);

3)通过后台动态设置图片来源(二进制字符流转成图片)

3.1)将二进制字符流转成Bitmap方法

   public static Bitmap convertStringToIcon(String outPut){
        Bitmap bitmap = null;
        try{
            byte[] bitmapArray;
            bitmapArray = android.util.Base64.decode(outPut, android.util.Base64.DEFAULT);
            bitmap = BitmapFactory.decodeByteArray(bitmapArray,0,bitmapArray.length);

        }catch (Exception ex){
            ex.printStackTrace();
        }
        return bitmap;
    }

3.2)调用转换方法并设置图片

  String imgStream = "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";
  Bitmap bitmap = ToolHelper.convertStringToIcon(imgStream);
  imgUserIcon.setImageBitmap(bitmap);

参考地址:https://blog.csdn.net/cf8833/article/details/52371491