我一直在尝试将图像形式的android sdcard存储到sqlite数据库中。它工作得很好。图像以blob形式存储在数据库中。这是我一直在使用的粗略代码。
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
imgView.setImageBitmap(bitmap);
int size = bitmap.getWidth() * bitmap.getHeight();
ByteArrayOutputStream out = new ByteArrayOutputStream(size);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
try {
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();}
byte[] x = out.toByteArray();
在数据库方面,代码就像这样
ContentValues values = new ContentValues();
byte[] bytes = null;
bytes = img_bytes.getBytes();
values.put("IMAGE", bytes);
为了显示,我使用了以下代码。
ImageView image = new ImageView(this);
byte[] img_bytes = result.get("IMAGE").getBytes();
Bitmap bMap = BitmapFactory.decodeByteArray(img_bytes, 0, img_bytes.length);
image.setImageBitmap(bMap);
当我打印字节数组的字符串值时,它变得像[B @ 44da2db0。但是字节数组没有显示在图像中。
有人请帮帮我。 感谢
答案 0 :(得分:3)
我找到了解决方案。谢谢大家。
我使用过base64编码方法。 即;为了显示图像,我一直在使用哈希映射来首先从数据库表中获取结果。 因此,在保存到地图之前,我已使用base 64方法将字节编码为字符串。 然后在活动侧显示图像,我再次使用base 64解码回字符串,然后转换为字节并显示图像。