-1

我正在做一个关于联系人的项目为此,我需要在 SQlite 数据库中导入/存储图片。从我读过的内容来看,我必须将图片转换为不同的格式(在这个假设中可能是错误的),然后将其存储在数据库。你能告诉我我该怎么做,或者我可以用不同的方法来做吗?两者都会对我有帮助,这样我就可以学到更多东西。

谢谢你,

4

1 回答 1

0

取决于您想从哪里获取图片,无论是来自互联网还是来自 SD 卡。但是,我假设您可以获取它并将其转换为位图。

Bitmap bm = (get it from anywhere);
ByteArrayOutputStream blob = new ByteArrayOutputStream();
//the below line is used if you like to scale it down to store it into the database
bm = Bitmap.createScaledBitmap(bm, width, height, false);
//then put it into a byte array to store it in the database
bm.compress(CompressFormat.JPEG, 100, blob);
// method call to database
dbClass.addPicture(blob.toByteArray());

数据库中的表定义:

SQLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS Pictures (id integer primary key autoincrement, pic blob not null ");

数据库类中的addPicture方法如下

public void addPicture(byte[] picture){
        db = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("pic", picture);
    db.insert("Pictures ", null, cv);
}

我希望这会有所帮助

于 2012-08-12T02:23:37.033 回答