сохранить изображение в SQLITE? - PullRequest
0 голосов
/ 16 февраля 2012

какой тип данных я должен использовать для хранения изображения в таблице базы данных sqlLite ??

моя попытка следующая:

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    db.execSQL("CREATE TABLE" + MP_TABLE_NAME + " ( " +
            BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            " NAME TEXT, " +
            " LAT REAL, "+
            " LNG REAL,"+
            ");"
              );

}

Ответы [ 3 ]

10 голосов
/ 16 февраля 2012

Попробуйте это ..

Создание таблицы со столбцом BLOB:

CREATE TABLE storedImages (_id INTEGER PRIMARY KEY, myImage BLOB);

Загрузка изображения с использованием HTTP и сохранение его в таблице:

DefaultHttpClient mHttpClient = new DefaultHttpClient();  
HttpGet mHttpGet = new HttpGet("your image url");  
HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);  
if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {  
    HttpEntity entity = mHttpResponse.getEntity();  
    if (entity != null) {  
        // insert to database  
        ContentValues values = new ContentValues();  
        values.put(MyBaseColumn.MyTable.ImageField, EntityUtils.toByteArray(entity));  
        getContentResolver().insert(MyBaseColumn.MyTable.CONTENT_URI, values);  
    }
 }

Загрузка BLOB-объекта в ImageView:

 ImageView myImage = (ImageView) findViewById(R.id.myImage);
 byte[] bb = cursor.getBlob(cursor.getColumnIndex(MyBaseColumn.MyTable.ImageField));
 myImage.setImageBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));
8 голосов
/ 16 февраля 2012

См. Документацию SQLite для типов данных .

Возможно, вам нужен тип BLOB, также известный как «двоичный двоичный объект» или «двоичный длинный объект». Просто имейте в виду, что хранение действительно больших вещей в базе данных SQLite не обязательно является хорошей идеей - изображения, как правило, лучше хранить в файловой системе, если вы можете ими управлять.

5 голосов
/ 16 февраля 2012

Сохранение изображений в Sqlite - плохая идея. Вы должны сохранить его путь в sqlite. Изображения большого размера по сравнению с текстовой информацией.

Трудно сохранить и извлечь изображения из sqlite.

Итак, я хотел бы предложить вам сохранить изображения во внешней папке и сохранить их путь в базе данных sqlite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...