2015-08-26 7 views
-1

Я сохраняю некоторые данные в данных SQLite для Android. Я хочу показать или получить данные изображения. следующий код, который я пытаюсь. пожалуйста, помогите мне:Как получить изображение из базы данных 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

Смежные вопросы