2015-08-26 95 views
-1

我在android的SQLite數據中保存了一些數據。我想顯示或檢索圖像數據。以下是我正在嘗試的代碼。請幫我出:如何從SQLite數據庫中檢索圖像

---檢索圖像,但我不能這樣做 公共字符串的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數據庫數據: 衆長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); 




} 

回答

0

在插入數據庫之前,您需要先將位圖圖像轉換爲字節數組,然後再將其應用於數據庫查詢。 當從數據庫中檢索時,你肯定有一個字節數組的圖像,你需要做的是將字節數組轉換回原始圖像。

代碼片斷 -

// 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); 
    } 
+0

我已經有這個在我的代碼。但我在從SQLite數據庫檢索圖像時出錯。 –

+0

您需要在'Byte array' byte []中獲取圖像image = cursor.getBlob(1); – ryderz8