正确使用Android BitmapFactory.decodeByteArray

时间:2013-09-23 23:31:55

标签: android bitmap

我已经搜索了一段时间,我找不到android的BitmapFactory.decodeByteArray()的示例实现

我希望了解函数是如何工作的,因为我计划将它用于我正在处理的项目,但我还没有能够得到一个简单的示例。这是我的代码:

public Bitmap createRandomBitmap() {
    int h = 300;
int w = 300;

buf = new byte[h * w * 4];

for (int i = 0; i < h * w * 4;i++) {
    buf[i] = 127;
}

bmp = BitmapFactory.decodeByteArray(buf, 0, h * w);
return bmp;
}

这总是返回null,根据文档意味着位图无法加载。但我无法弄清楚为什么。这应该使用默认的ARGB_8888格式,其中每个像素有4个字节。我以为我已经照顾到了上述情况。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

如果您想按照自己的方式创建原始BitmapBitmapFactory就不是答案。在setPixel()上使用Bitmap,或在createBitmap()上使用某种Bitmap工厂方法,或者创建Bitmap - 支持Canvas并使用Canvas操作。

BitmapFactory用于解码识别格式的位图,例如PNG和JPEG。