我正在做一个关于联系人的项目为此,我需要在 SQlite 数据库中导入/存储图片。从我读过的内容来看,我必须将图片转换为不同的格式(在这个假设中可能是错误的),然后将其存储在数据库。你能告诉我我该怎么做,或者我可以用不同的方法来做吗?两者都会对我有帮助,这样我就可以学到更多东西。
谢谢你,
我正在做一个关于联系人的项目为此,我需要在 SQlite 数据库中导入/存储图片。从我读过的内容来看,我必须将图片转换为不同的格式(在这个假设中可能是错误的),然后将其存储在数据库。你能告诉我我该怎么做,或者我可以用不同的方法来做吗?两者都会对我有帮助,这样我就可以学到更多东西。
谢谢你,
取决于您想从哪里获取图片,无论是来自互联网还是来自 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);
}
我希望这会有所帮助