我已经搜索了一段时间,我找不到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个字节。我以为我已经照顾到了上述情况。有什么建议吗?
答案 0 :(得分:4)
如果您想按照自己的方式创建原始Bitmap
,BitmapFactory
就不是答案。在setPixel()
上使用Bitmap
,或在createBitmap()
上使用某种Bitmap
工厂方法,或者创建Bitmap
- 支持Canvas
并使用Canvas
操作。
BitmapFactory
用于解码识别格式的位图,例如PNG和JPEG。