You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BitmapFactory将字节数组生成的Bitmap显示在ImageView中?

解决ImageView显示空白的问题

我来帮你搞定这个坑!你遇到的核心问题是:BitmapFactory.decodeByteArray是用来解析PNG、JPG这类压缩格式的图片字节流,而你手里的是原始的4字节/像素的像素数据,直接用它生成Bitmap肯定不对,自然显示空白。

正确的做法是直接用原始像素数据创建Bitmap,以下是可以直接用的代码片段:

// 你的原始像素数据,4字节每像素,160×160尺寸
byte[] pixelData = ...; // 替换成你的像素数组
int width = 160;
int height = 160;

// 创建ARGB_8888格式的Bitmap(对应4字节每像素,包含Alpha、红、绿、蓝通道)
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

// 将原始像素数据拷贝到Bitmap中
// 注意:如果你的像素数组是RGBA顺序(比如部分图像库输出),需要先转换为ARGB格式再传入
bitmap.copyPixelsFromByteArray(pixelData, 0, width * height * 4);

// 绑定到ImageView显示
ImageView imageView = findViewById(R.id.your_image_view_id);
imageView.setImageBitmap(bitmap);

额外注意点

  • 确认你的像素数组长度正好是 160*160*4 = 102400 字节,长度不符会导致显示异常或崩溃。
  • 如果像素数组是RGBA顺序,需要遍历每个像素,把Alpha通道移到首位(比如把RGBA转成ARGB),否则颜色会错乱。

内容的提问来源于stack exchange,提问作者Fyko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:20:46