在我的应用程序中,我尝试将imageView中的图像存储为字节数组,并将其存储在数据库中
ImageView imageView = (ImageView) findViewById(R.id.imgpreview);
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] byteArray = baos.toByteArray();
然后将此byteArray存储在数据库中,并在自定义GridAdapter中提取出来,以便将字节数组转换回位图并设置为图像视图。
ImageView image = (ImageView)gridView.findViewById(R.id.image1);
TextView description = (TextView)gridView.findViewById(R.id.tv1);
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray.get(position), 0, byteArray.get(position).length);
image.setImageBitmap(bmp);
存储或检索字节数组似乎没有问题,因为我在尝试解码它之前记录字节数组的toString并且它似乎被正确记录,所以我很困惑为什么它被显示为null,确切的消息是:
D / skia:--- SkImageDecoder :: Factory返回null
我已经查看了所有可以找到解决方案的线程,并尝试了所有这些,我只是无法弄清楚如何修复它。我尝试过不同的图像尺寸。如果需要更多信息,请提前告知我们。