android - Android BitmapFactory.decodeByteArray 的正确使用

标签 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 个字节。我以为我已经解决了上面的问题。有什么建议吗?

最佳答案

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

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

关于android - Android BitmapFactory.decodeByteArray 的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970572/

相关文章:

c++ - 声明一个变量内联赋值C++

java - 在android中提取位图的顶部

安卓项目 : How best to organize the files

android - 如何将LibGdx组actor转换为Android位图

c# - 在 C# 中通过 Web 服务传输图像的最佳方式是什么?

android - 在 Android 上清除剪贴板

启用按钮的Android任务

android - 如何为 Android 构建命令行应用程序?

android - 在 Flash Builder 4.5 中,有没有办法知道我在编译时将项目构建到哪个平台(android 或 iOs)?

android - Android : Xamarin Forms 中选项卡式页面的自定义渲染器