我正在使用此代码将位图放在ImageView中
private Bitmap getBitmap(ImageView imageView) {
imageView.setDrawingCacheEnabled(true);
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight());
imageView.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(imageView.getDrawingCache());
imageView.setDrawingCacheEnabled(false);
return b;
}});
并将此代码以字节数组的形式保存到数据库中
public byte[] convertToBytes(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
Log.d("IMAGE BYTE IS ", imageBytes.toString());
return imageBytes;
}
使用此代码对图像进行解码以重新显示它将返回null
public Bitmap convertToImage(byte[] bytes) {
ByteArrayInputStream imageStream = new ByteArrayInputStream(bytes);
return BitmapFactory.decodeStream(imageStream);
}
我在插入之前和检索之后记录了字节数组,它们都返回相同的值。它出了什么问题?
答案 0 :(得分:0)
结果我只是将流的内存引用保存到SQLite。使用ContentValue将字节数组插入sqlite就可以了。