Я пытался сохранить форму изображения 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.Но байтовый массив не отображается в изображении.
Кто-нибудь, пожалуйста, помогите мне с этим.Спасибо