如何从SQLite数据库中检索图像

时间:2015-08-26 12:01:36

标签: android sqlite

我正在为Android安装SQLite数据中的一些数据。我想显示或检索图像数据。以下是我正在尝试的代码。请帮帮我:

---检索图像,但我不能这样做 public String getData(){

    // TODO Auto-generated method stub

    String[] columns = new String[] { KEY_ROWID, KEY_NAME, KEY_NUMBER };

    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);

    String result = "";

    int iRow = c.getColumnIndex(KEY_ROWID);

    int iname = c.getColumnIndex(KEY_NAME);

    // int iphoto = c.getColumnIndex(KEY_PHOTO);

    int inumber = c.getColumnIndex(KEY_NUMBER);

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {

        result = result + c.getString(iRow) + " " + c.getString(iname) + " " + c.getString(inumber) + "\n";

    }

    return result;
}

----此方法在SQLite数据库中保存数据:     public long create_Entry(ContactInfo objContact){

    // TODO Auto-generated method stub

    ContentValues cv = new ContentValues();

    cv.put(KEY_NAME, objContact.getFname());

    cv.put(KEY_NUMBER, objContact.getPhoneNo());

    cv.put(KEY_PHOTO, Utility.getBytes(objContact.getBitmap()));

    return ourDatabase.insert(DATABASE_TABLE, null, cv);




}

1 个答案:

答案 0 :(得分:0)

在插入数据库之前,需要先将Bitmap图像转换为字节数组,然后使用数据库查询应用它。  从数据库中检索时,您肯定有一个图像字节数组,您需要做的是将字节数组转换回原始图像。

代码段 -

 // convert from bitmap to byte array
    public static byte[] getBytes(Bitmap bitmap) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.PNG, 0, stream);
        return stream.toByteArray();
    }

    // convert from byte array to bitmap
    public static Bitmap getImage(byte[] image) {
        return BitmapFactory.decodeByteArray(image, 0, image.length);
    }