错误日志是image:null
我的问题不正确将图片转换为base64。
我的代码编码图像
BitmapDrawable drawable = (BitmapDrawable) ivProfilePic.getDrawable();
Bitmap bitmap = drawable.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bos); byte[] bb = bos.toByteArray();
String encodedString = Base64.encodeToString(bb,Base64.DEFAULT);
Log.d("ImageBase34", encodedString);
解码字符串以隐藏图像
byte[] decodedString = Base64.decode(userDetailBean.getProfile_picture().getBytes(), Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Log.d("img", String.valueOf(base64Bitmap));
ivProfilePic.setImageBitmap(base64Bitmap);
答案 0 :(得分:0)
使用 encodedString 作为Base64.decode()方法中的第一个参数,而不是 userDetailBean.getProfile_picture()。
您需要像这样更改代码。
BitmapDrawable drawable = (BitmapDrawable) getDrawable(R.drawable.ic_default_user);
Bitmap bitmap = drawable.getBitmap();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bos); byte[] bb = bos.toByteArray();
encodedString = Base64.encodeToString(bb,Base64.DEFAULT);
Log.d("ImageBase34", encodedString);
解码字符串以隐藏图像
byte[] decodedString = Base64.decode(encodedString, Base64.DEFAULT);
Bitmap base64Bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Log.d("img", String.valueOf(base64Bitmap));
imageView.setImageBitmap(base64Bitmap);