【发布时间】:2012-04-20 09:10:18
【问题描述】:
我的 android 设备向服务器请求 png 图像。服务器将图像编码为 Base64 并将其发送到我的设备。之后,我将 Base64 字符串解码为字节数组,并使用 BitmapFactory.decodeByteArray() 制作它的位图图像。当我将图像添加到 ImageView 中时,我看不到图像。
代码见下方:
JSONObject params = resultObject.getJSONObject("params");
byte[] decodedImageInBytes = Base64.decode(params.getString("image_one"), Base64.DEFAULT);
Bitmap myImage = BitmapFactory.decodeByteArray(decodedImageInBytes, 0, decodedImageInBytes.length);
ImageView imageViewOne = (ImageView) findViewById(R.id.imageViewOne);
imageViewOne.setImageBitmap(myImage);
编辑:
看来我的代码没问题,我的服务器有点问题。谢谢大家!
【问题讨论】:
-
params.getString("image_one")的例子好吗? -
base64编码后的图片字符串。
-
我明白这一点。你能发布一个这样的base64字符串的例子吗?
-
解码后你的位图有有效的高度和宽度吗?我一直在像你一样解码 base64 图像,没有任何问题。
-
同意@Renard。您的代码看起来不错(根据 stackoverflow.com/a/4837293/139010 和 stackoverflow.com/q/5106670/139010)所以我的猜测是数据已损坏或不符合预期格式。
标签: java android image png bytearray