如何在sqlite-android中存储图像并检索相同的图像

时间:2012-01-05 08:12:27

标签: android image sqlite

我正在开发一个应用程序,它在sqlite中存储一些静态图像,我想在imageview中检索它们。 我该怎么做呢 感谢。

1 个答案:

答案 0 :(得分:7)

sqlite3支持blob类型,您可以使用blob类型保存位图内容。

但是,blob类型具有大小限制,并且难以保存为blob类型。

因此,我建议将位图保存在本地或SD卡上,并将路径保存在数据库中。

已添加

表使用blob类型

定义名为“image”的列
    Bitmap map = ...;
    ByteArrayOutputStream bufferStream = new ByteArrayOutputStream(16*1024);
    map.compress(CompressFormat.JPEG, 80, bufferStream);
    byte[] bytes = bufferStream.toByteArray();
    ContentValues values = new ContentValues();
    values.put("image", bytes);

根据需要使用 SQLiteDatabase 类方法或内容提供程序转换图像字节数组:

public long insert (String table, String nullColumnHack, ContentValues values)

要插入表格,因此会将图片保存到blob

然后:当您查询blob数据时,您可以创建如下图像:

        BitmapFactory.Options option2 = new BitmapFactory.Options();
        option2.inPreferredConfig = Bitmap.Config.RGB_565;
        // added for reducing the memory
        option2.inDither = false;
        option2.inPurgeable = true;
        return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, option2);

希望它可以实现您的请求。 - ):