2

我正在开发 android 应用程序,我在其中解析来自 web 服务的数据,然后将其存储在数据库中。在这里,我还想将图像存储在数据库中并在下一个活动中检索。

我正在使用此代码将图像插入数据库。

Bitmap yourSelectedImage;
ByteArrayOutputStream stream;
byte[] byteArray;

这是在 for 循环中

{ 
yourSelectedImage = BitmapFactory.decodeFile(SingleImageURL[i]);
stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100,
                    stream);
byteArray = stream.toByteArray();

database.insertDetail(ID[i],byteArray[i]); 

}

这里 SingleImageURL 有来自网络服务的图像 url。

当我运行代码时,它会在这一行给出错误 nullPointerException

 yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100,
                    stream);

请告诉我哪里出错了。以及如何做到这一点。

4

1 回答 1

3

yourSelectedImage使用此链接加载您的位图。然后通过将其转换为byte[]

您正在解码一个文件,它实际上是一个 URL。所以你yourSelectedImagenull。当您尝试使用压缩它时

yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);

你得到NullPointerException

于 2013-03-05T13:04:38.633 回答